From: Ted Lemon Date: Thu, 6 Mar 1997 06:53:49 +0000 (+0000) Subject: Check address ranges to see if they're on the right net (previously we just silently... X-Git-Tag: DHCP-970306~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d33ed72727f402b5827aa6ef6b646f14132cd07;p=thirdparty%2Fdhcp.git Check address ranges to see if they're on the right net (previously we just silently made them be on the right net, with interesting results). In supersede_leases, don't copy offered_expiry anymore since it's now in the state structure --- diff --git a/common/memory.c b/common/memory.c index 8b5835257..10200cfeb 100644 --- a/common/memory.c +++ b/common/memory.c @@ -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)) {