]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
DHCPv6 server now responds properly if client asks for a prefix that
authorTomek Mrugalski <tomek@isc.org>
Wed, 13 Apr 2011 10:05:45 +0000 (10:05 +0000)
committerTomek Mrugalski <tomek@isc.org>
Wed, 13 Apr 2011 10:05:45 +0000 (10:05 +0000)
is already assigned to a different client. [ISC-Bugs #23948]

RELNOTES
server/dhcpv6.c

index 813b39c5e12fc506d875a5ae4056adbfaaa4426d..01ae579732918923668a858e0e4c3899afe17b1a 100644 (file)
--- 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
 
index 7158d06dfa695e94ca88250174c58f5c6dd088d7..972c89e7f3997ce9d34ae2d8a4500378488bda28 100644 (file)
@@ -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;
        }