From: Tomek Mrugalski Date: Wed, 13 Apr 2011 10:05:45 +0000 (+0000) Subject: DHCPv6 server now responds properly if client asks for a prefix that X-Git-Tag: v4_2_2b1~36 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ea8baaa31b07e8223339357cc5594bf09b70e25b;p=thirdparty%2Fdhcp.git DHCPv6 server now responds properly if client asks for a prefix that is already assigned to a different client. [ISC-Bugs #23948] --- diff --git a/RELNOTES b/RELNOTES index 813b39c5e..01ae57973 100644 --- a/RELNOTES +++ b/RELNOTES @@ -46,6 +46,9 @@ work on other platforms. Please report any problems and suggested fixes to interfaces with the OS. [ISC-Bugs #23722] CVE: CVE-2011-0997 + +- DHCPv6 server now responds properly if client asks for a prefix that + is already assigned to a different client. [ISC-Bugs #23948] Changes since 4.2.1rc1 diff --git a/server/dhcpv6.c b/server/dhcpv6.c index 7158d06df..972c89e7f 100644 --- a/server/dhcpv6.c +++ b/server/dhcpv6.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2010 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2006-2011 by Internet Systems Consortium, Inc. ("ISC") * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -3708,7 +3708,9 @@ reply_process_try_prefix(struct reply_state *reply, continue; status = try_client_v6_prefix(&reply->lease, pool, &data_pref); - if (status == ISC_R_SUCCESS) + /* If we found it in this pool (either in use or available), + there is no need to look further. */ + if ( (status == ISC_R_SUCCESS) || (status == ISC_R_ADDRINUSE) ) break; }