2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-30 05:47:45 +00:00

- An option definition referencing leak was fixed, which resulted in early

termination of dhclient upon the renewal event. [ISC-Bugs #16423]
This commit is contained in:
David Hankins 2006-10-17 20:45:59 +00:00
parent 7cbeb9f493
commit 66c8f7347a
4 changed files with 12 additions and 8 deletions

View File

@ -36,7 +36,10 @@ the README file.
- UPDREQ/UPDREQALL handling was optimized - it no longer dequeues and
requeues all pending updates. This should reduce the number of spurious
'xid mismatch' log mesasges.
'xid mismatch' log messages.
- An option definition referencing leak was fixed, which resulted in early
termination of dhclient upon the renewal event.
Changes since 3.0 (New Features)

View File

@ -34,7 +34,7 @@
#ifndef lint
static char copyright[] =
"$Id: options.c,v 1.99 2006/08/24 14:58:55 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
"$Id: options.c,v 1.100 2006/10/17 20:45:59 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#define DHCP_OPTION_DATA
@ -1689,7 +1689,7 @@ void set_option (universe, options, option, op)
break;
}
}
noc -> option = oc -> option;
option_reference(&(noc->option), oc->option, MDL);
save_option (universe, options, noc);
option_cache_dereference (&noc, MDL);
break;
@ -2992,7 +2992,7 @@ add_option(struct option_state *options,
return 0;
}
oc->option = option;
option_reference(&(oc->option), option, MDL);
save_option(&dhcp_universe, options, oc);
option_cache_dereference(&oc, MDL);

View File

@ -34,7 +34,7 @@
#ifndef lint
static char copyright[] =
"$Id: tree.c,v 1.108 2006/07/31 22:19:51 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
"$Id: tree.c,v 1.109 2006/10/17 20:45:59 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -242,7 +242,7 @@ int make_const_option_cache (oc, buffer, data, len, option, file, line)
(*oc) -> data.terminated = 0;
if (data)
memcpy (&bp -> data [0], data, len);
(*oc) -> option = option;
option_reference(&((*oc)->option), option, MDL);
return 1;
}

View File

@ -34,7 +34,7 @@
#ifndef lint
static char copyright[] =
"$Id: dhcp.c,v 1.212 2006/08/22 17:13:25 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
"$Id: dhcp.c,v 1.213 2006/10/17 20:45:59 dhankins Exp $ Copyright (c) 2004-2006 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -2426,7 +2426,8 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp)
expression_reference (&noc -> expression,
oc -> expression, MDL);
if (oc -> option)
noc -> option = oc -> option;
option_reference(&(noc->option), oc->option,
MDL);
}
save_option (&dhcp_universe, state -> options, noc);