From: David Hankins Date: Tue, 10 Jul 2007 21:42:05 +0000 (+0000) Subject: - Fixed a bug with the 'ddns-updates' boolean server configuration X-Git-Tag: v4_0_0a2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=26be82affae3c54ed42ade07e58a0f5b5b32d3e3;p=thirdparty%2Fdhcp.git - Fixed a bug with the 'ddns-updates' boolean server configuration parameter, which caused the server to fail. [ISC-Bugs #17002] --- diff --git a/RELNOTES b/RELNOTES index 44bc6424f..5c4c92781 100644 --- a/RELNOTES +++ b/RELNOTES @@ -90,6 +90,9 @@ suggested fixes to . - Fixed a bug parsing DHCPv6 client-id's in host-identifier statements +- Fixed a bug with the 'ddns-updates' boolean server configuration + parameter, which caused the server to fail. + Changes since 4.0.0-20070413 - Old (expired) leases are now cleaned. diff --git a/common/tree.c b/common/tree.c index aa7cd0383..4780a7d6a 100644 --- a/common/tree.c +++ b/common/tree.c @@ -34,7 +34,7 @@ #ifndef lint static char copyright[] = -"$Id: tree.c,v 1.116 2007/06/07 15:52:29 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n"; +"$Id: tree.c,v 1.117 2007/07/10 21:42:05 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -2972,12 +2972,16 @@ int evaluate_boolean_option_cache (ignorep, packet, cfg_options, scope, oc, file, line)) return 0; + /* The boolean option cache is actually a trinary value. Zero is + * off, one is on, and 2 is 'ignore'. + */ if (ds.len) { result = ds.data [0]; if (result == 2) { result = 0; - *ignorep = 1; - } else + if (ignorep != NULL) + *ignorep = 1; + } else if (ignorep != NULL) *ignorep = 0; } else result = 0;