]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Allow zero-length client ids when hashing. Ticket 21253
authorShawn Routhier <sar@isc.org>
Fri, 14 May 2010 23:46:59 +0000 (23:46 +0000)
committerShawn Routhier <sar@isc.org>
Fri, 14 May 2010 23:46:59 +0000 (23:46 +0000)
RELNOTES
omapip/hash.c

index c3b0684f3381167ebb1ded2579547c0701e37731..ee12de41c67d5c7e362d3eafcb41a0da2cc4e58a 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -44,6 +44,10 @@ work on other platforms. Please report any problems and suggested fixes to
 - Prohibit including lease time information in a response to a DHCP INFORM
   Bug ticket 21092.
 
+! Accept a client id of length 0 while hashing.  Previously the server would
+  exit if it attempted to hash a zero length client id, providing attackers
+  with a simple denial of service attack.  Bug ticket 21253.
+
                        Changes since 4.2.0a2
 
 - Update the fsync code to work with the changes to the DDNS code.  It now
index e33f803e0a62133afca4416676ecb48a913c6633..c3aa737c2b308a755baa79a02738e3ed2f5b7577 100644 (file)
@@ -3,7 +3,8 @@
    Routines for manipulating hash tables... */
 
 /*
- * Copyright (c) 2004-2007,2009 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2009-2010 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2004-2007 by Internet Systems Consortium, Inc. ("ISC")
  * Copyright (c) 1995-2003 by Internet Software Consortium
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -49,8 +50,13 @@ find_length(const void *key,
        if (do_hash == do_ip4_hash)
                return 4;
 
-       log_fatal("Impossible condition at %s:%d.", MDL);
-       return 0; /* Silence compiler warnings. */
+       log_debug("Unexpected hash function at %s:%d.", MDL);
+       /*
+        * If we get a hash function we don't specifically expect
+        * return a length of 0, this covers the case where a client
+        * id has a length of 0.
+        */
+       return 0;
 }
 
 int new_hash_table (tp, count, file, line)