From: Sean Edmond <seanedmond@microsoft.com>
To: u-boot@lists.denx.de
Cc: trini@konsulko.com, Sean Edmond <seanedmond@microsoft.com>,
Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>,
Bin Meng <bmeng.cn@gmail.com>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Joe Hershberger <joe.hershberger@ni.com>,
Marek Vasut <marex@denx.de>, Michal Simek <michal.simek@amd.com>,
Ramon Fried <rfried.dev@gmail.com>, Roger Knecht <rknecht@pm.me>,
Simon Glass <sjg@chromium.org>,
Tobias Waldekranz <tobias@waldekranz.com>
Subject: [PATCH v6 1/3] net: Enhancements for dhcp option 209
Date: Wed, 22 Nov 2023 15:27:44 -0800 [thread overview]
Message-ID: <20231122232812.823837-2-seanedmond@microsoft.com> (raw)
In-Reply-To: <20231122232812.823837-1-seanedmond@microsoft.com>
- Enable option 209 by default
- Set pxelinux_configfile to NULL to avoid potential double free
- change hardcoced 209 to a define
Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
---
Changes in v6:
- Reword this commit
Changes in v4:
- rebase master and resolve conflicts
- default y for BOOTP_PXE_DHCP_OPTION (feedback from review)
- change commit description for this patch (this is now
an enhancement patch)
Changes in v3:
- add define for option 209 and rfc5071 reference
cmd/Kconfig | 1 +
cmd/pxe.c | 2 ++
net/bootp.c | 4 ++--
net/bootp.h | 2 ++
4 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig
index df6d71c103f..ae846b204dc 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1842,6 +1842,7 @@ config BOOTP_PXE_CLIENTARCH
config BOOTP_PXE_DHCP_OPTION
bool "Request & store 'pxe_configfile' from BOOTP/DHCP server"
+ default y
depends on BOOTP_PXE
config BOOTP_VCI_STRING
diff --git a/cmd/pxe.c b/cmd/pxe.c
index 21134eb7a30..9404f445187 100644
--- a/cmd/pxe.c
+++ b/cmd/pxe.c
@@ -65,6 +65,8 @@ static int pxe_dhcp_option_path(struct pxe_context *ctx, unsigned long pxefile_a
int ret = get_pxe_file(ctx, pxelinux_configfile, pxefile_addr_r);
free(pxelinux_configfile);
+ /* set to NULL to avoid double-free if DHCP is tried again */
+ pxelinux_configfile = NULL;
return ret;
}
diff --git a/net/bootp.c b/net/bootp.c
index 68002909634..24547cf7bfd 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -603,7 +603,7 @@ static int dhcp_extended(u8 *e, int message_type, struct in_addr server_ip,
*cnt += 1;
#endif
if (IS_ENABLED(CONFIG_BOOTP_PXE_DHCP_OPTION)) {
- *e++ = 209; /* PXELINUX Config File */
+ *e++ = DHCP_OPTION_PXE_CONFIG_FILE; /* PXELINUX Config File */
*cnt += 1;
}
/* no options, so back up to avoid sending an empty request list */
@@ -914,7 +914,7 @@ static void dhcp_process_options(uchar *popt, uchar *end)
net_boot_file_name[size] = 0;
}
break;
- case 209: /* PXELINUX Config File */
+ case DHCP_OPTION_PXE_CONFIG_FILE: /* PXELINUX Config File */
if (IS_ENABLED(CONFIG_BOOTP_PXE_DHCP_OPTION)) {
/* In case it has already been allocated when get DHCP Offer packet,
* free first to avoid memory leak.
diff --git a/net/bootp.h b/net/bootp.h
index 4e32b19d424..24b32c73f62 100644
--- a/net/bootp.h
+++ b/net/bootp.h
@@ -91,6 +91,8 @@ typedef enum { INIT,
#define DHCP_NAK 6
#define DHCP_RELEASE 7
+#define DHCP_OPTION_PXE_CONFIG_FILE 209 /* "ConfigFile" option according to rfc5071 */
+
/**********************************************************************/
#endif /* __BOOTP_H__ */
--
2.42.0
next prev parent reply other threads:[~2023-11-22 23:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-22 23:27 [PATCH v6 0/3] BOOTP/DHCPv4 enhancements Sean Edmond
2023-11-22 23:27 ` Sean Edmond [this message]
2023-11-22 23:27 ` [PATCH v6 2/3] net: bootp: BOOTP/DHCPv4 retransmission improvements Sean Edmond
2024-03-26 23:58 ` Tom Rini
2023-11-22 23:27 ` [PATCH v6 3/3] net: bootp: add config option BOOTP_RANDOM_XID Sean Edmond
-- strict thread matches above, loose matches on Subject: below --
2024-04-29 18:33 [PATCH v6 0/3] BOOTP/DHCPv4 enhancements Sean Edmond
2024-04-29 18:33 ` [PATCH v6 1/3] net: Enhancements for dhcp option 209 Sean Edmond
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231122232812.823837-2-seanedmond@microsoft.com \
--to=seanedmond@microsoft.com \
--cc=abdellatif.elkhlifi@arm.com \
--cc=bmeng.cn@gmail.com \
--cc=joe.hershberger@ni.com \
--cc=marex@denx.de \
--cc=michal.simek@amd.com \
--cc=rfried.dev@gmail.com \
--cc=rknecht@pm.me \
--cc=sjg@chromium.org \
--cc=tobias@waldekranz.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox