diff --git a/RELNOTES b/RELNOTES index d0b6edd0..956df1ec 100644 --- a/RELNOTES +++ b/RELNOTES @@ -196,12 +196,13 @@ the README file. - A logic error in omapi interface code was repaired that might result in incorrectly indicating 'up' state when any flags were set, rather than - specifically the INTERFACE_REQUESTED flag. + specifically the INTERFACE_REQUESTED flag. Thanks to a patch from + Jochen Voss which got to us via Andrew Pollock at Debian. - A reference leak on binding scopes set by ddns updates was repaired. - A memory leak in the minires_nsendsigned() function call was repaired. - Effectively, this leaked ~80 bytes per DDNS update. + Effectively, this leaked ~176 bytes per DDNS update. - In the case where an "L2" DHCP Relay Agent (one that does not set giaddr) was directly attached to the same broadcast domain as the DHCP server, @@ -210,7 +211,11 @@ the README file. requires the giaddr to reply with relay agent information. Note that this also improves compatibility with L2 devices that "intercept" DHCP packets and expect relay agent information even in unicast (renewal) - replies. + replies. Thanks to a patch from Pekka Silvonen. + +- A bug was fixed where the BOOTP header 'sname' field had a value, the + copy written to persistent storage was actually the contents of the + 'file' field. Changes since 3.0.5rc1 diff --git a/client/dhclient.c b/client/dhclient.c index 2b7f0275..0870e07f 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -32,7 +32,7 @@ #ifndef lint static char ocopyright[] = -"$Id: dhclient.c,v 1.144 2006/08/22 15:01:47 shane Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n"; +"$Id: dhclient.c,v 1.145 2007/04/03 14:57:53 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -2367,15 +2367,15 @@ int write_client_lease (client, lease, rewrite, makesure) errors++; } - if (lease -> server_name) { - s = quotify_string (lease -> filename, MDL); - if (s) { - fprintf (leaseFile, " server-name \"%s\";\n", s); + if (lease->server_name != NULL) { + s = quotify_string(lease->server_name, MDL); + if (s != NULL) { + fprintf(leaseFile, " server-name \"%s\";\n", s); if (errno) { ++errors; errno = 0; } - dfree (s, MDL); + dfree(s, MDL); } else ++errors; }