]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Check address ranges to see if they're on the right net (previously we just silently...
authorTed Lemon <source@isc.org>
Thu, 6 Mar 1997 06:53:49 +0000 (06:53 +0000)
committerTed Lemon <source@isc.org>
Thu, 6 Mar 1997 06:53:49 +0000 (06:53 +0000)
common/memory.c

index 8b58352577fcbb8219c51ddcacaf246cb66b75af..10200cfeb575a66b5c06b8b22fb1f877d8e65620 100644 (file)
@@ -42,7 +42,7 @@
 
 #ifndef lint
 static char copyright[] =
-"$Id: memory.c,v 1.24 1997/03/05 06:34:36 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium.  All rights reserved.\n";
+"$Id: memory.c,v 1.25 1997/03/06 06:53:49 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium.  All rights reserved.\n";
 #endif /* not lint */
 
 #include "dhcpd.h"
@@ -229,6 +229,15 @@ void new_address_range (low, high, subnet, dynamic)
                       lowbuf, highbuf, netbuf, "multiple subnets");
        }
 
+       /* Make sure that the addresses are on the correct subnet. */
+       if (!addr_eq (net, subnet -> net)) {
+               strcpy (lowbuf, piaddr (low));
+               strcpy (highbuf, piaddr (high));
+               strcpy (netbuf, piaddr (subnet -> netmask));
+               error ("Address range %s to %s not on net %s/%s!",
+                      lowbuf, highbuf, piaddr (subnet -> net), netbuf);
+       }
+
        /* Get the high and low host addresses... */
        max = host_addr (high, subnet -> netmask);
        min = host_addr (low, subnet -> netmask);
@@ -489,7 +498,6 @@ int supersede_lease (comp, lease, commit)
 
                /* Copy the data files, but not the linkages. */
                comp -> starts = lease -> starts;
-               comp -> offered_expiry = lease -> offered_expiry;
                comp -> timestamp = lease -> timestamp;
                if (lease -> uid) {
                        if (lease -> uid_len < sizeof (lease -> uid_buf)) {