diff options
-rw-r--r-- | README | 10 | ||||
-rw-r--r-- | RELNOTES | 7 | ||||
-rw-r--r-- | client/dhclient.c | 7 | ||||
-rw-r--r-- | configure.ac | 2 |
4 files changed, 16 insertions, 10 deletions
@@ -1,6 +1,6 @@ Internet Systems Consortium DHCP Distribution - Version 4.1.0a1 - 24 January 2008 + Version 4.1.0a2 + 4 June 2008 README FILE @@ -129,12 +129,12 @@ information. On Digital Unix, type ``man pfilt''. To build the DHCP Distribution, unpack the compressed tar file using the tar utility and the gzip command - type something like: - gunzip dhcp-4.1.0a1.tar.gz - tar xvf dhcp-4.1.0a1.tar + gunzip dhcp-4.1.0a2.tar.gz + tar xvf dhcp-4.1.0a2.tar CONFIGURING IT -Now, cd to the dhcp-4.1.0a1 subdirectory that you've just created and +Now, cd to the dhcp-4.1.0a2 subdirectory that you've just created and configure the source tree by typing: ./configure @@ -1,6 +1,6 @@ Internet Systems Consortium DHCP Distribution - Version 4.1.0a1 - 24 January 2008 + Version 4.1.0a2 + 4 June 2008 Release Notes @@ -86,6 +86,9 @@ work on other platforms. Please report any problems and suggested fixes to - Integrated client with stateless, temporary address and prefix delegation support. +- A double-dereference in dhclient transmission of DHCPDECLINEs was + repaired. + Changes since 4.0.0 (new features) - Added DHCPv6 rapid commit support. diff --git a/client/dhclient.c b/client/dhclient.c index 5674a341..54e971cc 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -2432,12 +2432,13 @@ void make_decline (client, lease) struct option_state *options = (struct option_state *)0; + /* Create the options cache. */ oc = lookup_option (&dhcp_universe, lease -> options, DHO_DHCP_SERVER_IDENTIFIER); make_client_options(client, lease, &decline, oc, &lease->address, NULL, &options); - /* Set up the option buffer... */ + /* Consume the options cache into the option buffer. */ memset (&client -> packet, 0, sizeof (client -> packet)); client -> packet_length = cons_options ((struct packet *)0, &client -> packet, @@ -2445,10 +2446,12 @@ void make_decline (client, lease) (struct option_state *)0, options, &global_scope, 0, 0, 0, (struct data_string *)0, client -> config -> vendor_space_name); + + /* Destroy the options cache. */ option_state_dereference (&options, MDL); + if (client -> packet_length < BOOTP_MIN_LEN) client -> packet_length = BOOTP_MIN_LEN; - option_state_dereference (&options, MDL); client -> packet.op = BOOTREQUEST; client -> packet.htype = client -> interface -> hw_address.hbuf [0]; diff --git a/configure.ac b/configure.ac index 9118f897..9df3c2b1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([DHCP], [4.1.0a1], [dhcp-users@isc.org]) +AC_INIT([DHCP], [4.1.0a2], [dhcp-users@isc.org]) # we specify "foreign" to avoid having to have the GNU mandated files, # like AUTHORS, COPYING, and such |