diff options
author | murray <murray@FreeBSD.org> | 2002-09-30 08:39:27 +0000 |
---|---|---|
committer | murray <murray@FreeBSD.org> | 2002-09-30 08:39:27 +0000 |
commit | 18e7799fecdbb23e8410615538872b5f9fc073e9 (patch) | |
tree | ba1923c5cc7d83e6d08ab8bc89eb20e6ea3d65d8 | |
parent | 23e3bcb405c712346beffd2371b06ffbf5fee203 (diff) | |
parent | a0b500f866e54d9ce8def00d72daac852505461e (diff) | |
download | FreeBSD-src-18e7799fecdbb23e8410615538872b5f9fc073e9.zip FreeBSD-src-18e7799fecdbb23e8410615538872b5f9fc073e9.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r104185,
which included commits to RCS files with non-trunk default branches.
-rw-r--r-- | contrib/isc-dhcp/README | 18 | ||||
-rw-r--r-- | contrib/isc-dhcp/RELNOTES | 57 | ||||
-rw-r--r-- | contrib/isc-dhcp/common/bpf.c | 4 | ||||
-rw-r--r-- | contrib/isc-dhcp/common/dhcp-eval.5 | 8 | ||||
-rw-r--r-- | contrib/isc-dhcp/common/discover.c | 9 | ||||
-rw-r--r-- | contrib/isc-dhcp/common/parse.c | 16 | ||||
-rw-r--r-- | contrib/isc-dhcp/common/print.c | 6 | ||||
-rwxr-xr-x | contrib/isc-dhcp/configure | 1 | ||||
-rw-r--r-- | contrib/isc-dhcp/includes/dhcpd.h | 8 | ||||
-rw-r--r-- | contrib/isc-dhcp/includes/site.h | 2 | ||||
-rw-r--r-- | contrib/isc-dhcp/includes/version.h | 2 | ||||
-rw-r--r-- | contrib/isc-dhcp/omapip/convert.c | 6 |
12 files changed, 93 insertions, 44 deletions
diff --git a/contrib/isc-dhcp/README b/contrib/isc-dhcp/README index dad9779..3f20a82 100644 --- a/contrib/isc-dhcp/README +++ b/contrib/isc-dhcp/README @@ -1,9 +1,9 @@ Internet Software Consortium DHCP Distribution Version 3.0.1 - Release Candidate 8 - February 21, 2002 + Release Candidate 9 + April 28, 2002 - README FILE + README FILE You should read this file carefully before trying to install or use the ISC DHCP Distribution. @@ -97,7 +97,7 @@ system. RELEASE STATUS -This is the second beta release of version 3.0 of the ISC DHCP +This is the ninth release candidate of version 3.0.1 of the ISC DHCP Distribution. Development of this release is approaching the point at which it will be frozen, and no significant new features will be added. @@ -143,14 +143,14 @@ information. On Digital Unix, type ``man pfilt''. To build the DHCP Distribution, unpack the compressed tar file using the tar utility and the gzip command - type something like: - zcat dhcp-3.0.1rc8.tar.gz |tar xvf - + zcat dhcp-3.0.1rc9.tar.gz |tar xvf - On BSD/OS, you have to type gzcat, not zcat, and you may run into similar problems on other operating systems. CONFIGURING IT -Now, cd to the dhcp-3.0.1rc8 subdirectory that you've just +Now, cd to the dhcp-3.0.1rc9 subdirectory that you've just created and configure the source tree by typing: ./configure @@ -435,6 +435,12 @@ running a version of FreeBSD prior to 2.2, and you find that dhcpd can't communicate with its clients, you should #define BROKEN_FREEBSD_BPF in site.h and recompile. +Modern versions of FreeBSD include the ISC DHCP 3.0 client as part of +the base system, and the full distribution (for the DHCP server and +relay agent) is available from the Ports Collection in +/usr/ports/net/isc-dhcp3, or as a package on FreeBSD installation +CDROMs. + NeXTSTEP The NeXTSTEP support uses the NeXTSTEP Berkeley Packet Filter diff --git a/contrib/isc-dhcp/RELNOTES b/contrib/isc-dhcp/RELNOTES index 7941094..b8e85d5 100644 --- a/contrib/isc-dhcp/RELNOTES +++ b/contrib/isc-dhcp/RELNOTES @@ -1,9 +1,9 @@ Internet Software Consortium DHCP Distribution Version 3.0.1 - Release Candidate 8 - February 21, 2002 + Release Candidate 9 + April 30, 2002 - Release Notes + Release Notes NEW FEATURES @@ -46,6 +46,43 @@ Murrell at BC Tel Advanced Communications. I'd like to express my thanks to all of these good people here, both for working on the code and for prodding me into improving it. + Changes since 3.0.1rc8 + +- Fix a format string vulnerability in the server that could lead to a + remote root compromise (discovered by NGSEC Research Team, www.ngsec.com). + +- Add additional support for NetBSD/sparc64. + +- Fix a bug in the command-line parsing of the client. Also, resolve + a memory leak. + +- Add better support for shells other than bash in the Linux client + script. + +- Various build fixes for modern versions of FreeBSD and Linux. + +- Fix a bad bounds check when printing binding state names. + +- Clarify documentation about fixed-address and multiple addresses. + +- Fix a typo in the authoritative error message. + +- Make a log entry when we can't write a billing class. + +- Use conversion targets that are the right size on all architectures. + +- Increment the hop count when relaying. + +- Log a message when lease state is changed through OMAPI. + +- Don't rerun the shared_network when evaluating the pool. + +- Fix a reversed test in the parser. + +- Change the type of rbuf_max. + +- Make FTS_LAST a manifest constant to quiet warnings. + Changes since 3.0.1rc7 - Fix two compiler warnings that are generated when compiling on Solaris @@ -74,7 +111,7 @@ and for prodding me into improving it. - Fix a bug where the FQDN option would not be returned if the client requested it, contrary to the standard. -- On Darwin, use the freebsd DHCP client script. +- On Darwin, use the FreeBSD DHCP client script. - On NetBSD/sparc, don't check for casting warnings. @@ -262,7 +299,7 @@ and for prodding me into improving it. - Finish fixing a bug where bogus data would sometimes get logged to the dhclient.leases file because it was opened as descriptor 2. -- Fix the linux dhclient-script according to suggestions made by +- Fix the Linux dhclient-script according to suggestions made by several people on the dhcp-client mailing list. - Log successful DNS updates at LOG_INFO, not LOG_ERROR. @@ -425,10 +462,10 @@ and for prodding me into improving it. - Clean up the memory allocation/reference history printer. -- Support input of dotted quads and colon-seperated hex lists as +- Support input of dotted quads and colon-separated hex lists as attribute values in omshell. -- Fix a typo in the linux interface discovery code. +- Fix a typo in the Linux interface discovery code. - Conditionalize a piece of trace code that wasn't conditional. @@ -462,7 +499,7 @@ and for prodding me into improving it. - Fix compile problem on SunOS 4.x -- If a signature algorithm is not termined with '.', terminate it so +- If a signature algorithm is not terminated with '.', terminate it so that comparisons between fully-qualified names will work consistently. @@ -496,7 +533,7 @@ and for prodding me into improving it. - Change the conditions under which a DHCPRELEASE is actually committed to be consistent with lease binding states rather than - using the lease end time. THis may fix some problems with the + using the lease end time. This may fix some problems with the billing class code. - Fix a bug where lease updates would fail on Digital Unix (and maybe @@ -675,7 +712,7 @@ and for prodding me into improving it. given a lease where the hardware address was correct but the client identifier was not, resulting in a lease conflict message. -- Fix a problem where the server could write out a colon-seperated +- Fix a problem where the server could write out a colon-separated hex list as a value for a variable, which would then not parse. The fix is to always write strings as quoted strings, with any non-printable characters quoted as octal escape sequences. So diff --git a/contrib/isc-dhcp/common/bpf.c b/contrib/isc-dhcp/common/bpf.c index 49af907..6ca91bb 100644 --- a/contrib/isc-dhcp/common/bpf.c +++ b/contrib/isc-dhcp/common/bpf.c @@ -47,7 +47,7 @@ #ifndef lint static char copyright[] = -"$Id: bpf.c,v 1.48 2001/04/08 21:12:49 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n"; +"$Id: bpf.c,v 1.48.2.1 2002/04/30 05:12:53 murray Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -421,7 +421,7 @@ ssize_t receive_packet (interface, buf, len, from, hfrom) if (interface -> rbuf_offset == interface -> rbuf_len) { length = read (interface -> rfdesc, interface -> rbuf, - interface -> rbuf_max); + (size_t)interface -> rbuf_max); if (length <= 0) { if (errno == EIO) { dhcp_interface_remove diff --git a/contrib/isc-dhcp/common/dhcp-eval.5 b/contrib/isc-dhcp/common/dhcp-eval.5 index cbb7745..e87c617 100644 --- a/contrib/isc-dhcp/common/dhcp-eval.5 +++ b/contrib/isc-dhcp/common/dhcp-eval.5 @@ -261,10 +261,10 @@ hexadecimal value can be specified with '\xnn', where nn is any positive hexadecimal number less than 0xff. .RE .PP -.I colon-seperated hexadecimal list +.I colon-separated hexadecimal list .PP .RS 0.25i -A list of hexadecimal octet values, seperated by colons, may be +A list of hexadecimal octet values, separated by colons, may be specified as a data expression. .RE .PP @@ -300,7 +300,7 @@ address. .RS 0.25i Converts the result of evaluating data-expr2 into a text string containing one number for each element of the result of evaluating -data-expr2. Each number is seperated from the other by the result of +data-expr2. Each number is separated from the other by the result of evaluating data-expr1. The result of evaluating numeric-expr1 specifies the base (2 through 16) into which the numbers should be converted. The result of evaluating numeric-expr2 specifies the @@ -421,7 +421,7 @@ Logging statements may be used to send information to the standard logging channels. A logging statement includes an optional priority (\fBfatal\fR, \fBerror\fR, \fBinfo\fR, or \fBdebug\fR), and a data expression. .PP -.B log (\fIpriority\fB, \fIdata-expr\FB)\fR +.B log (\fIpriority\fB, \fIdata-expr\fB)\fR .PP Logging statements take only a single data expression argument, so if you want to output multiple data values, you will need to use the \fBconcat\fR diff --git a/contrib/isc-dhcp/common/discover.c b/contrib/isc-dhcp/common/discover.c index 953bab0..c52ecdb 100644 --- a/contrib/isc-dhcp/common/discover.c +++ b/contrib/isc-dhcp/common/discover.c @@ -43,7 +43,7 @@ #ifndef lint static char copyright[] = -"$Id: discover.c,v 1.42.2.8 2001/10/18 20:10:26 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; +"$Id: discover.c,v 1.42.2.9 2002/03/12 06:46:17 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -407,8 +407,11 @@ void discover_interfaces (state) name, isc_result_totext (status)); tmp -> flags = ir; strncpy (tmp -> name, name, IFNAMSIZ); - interface_reference (&tmp -> next, interfaces, MDL); - interface_dereference (&interfaces, MDL); + if (interfaces) { + interface_reference (&tmp -> next, + interfaces, MDL); + interface_dereference (&interfaces, MDL); + } interface_reference (&interfaces, tmp, MDL); interface_dereference (&tmp, MDL); tmp = interfaces; diff --git a/contrib/isc-dhcp/common/parse.c b/contrib/isc-dhcp/common/parse.c index a2d13f8..5f20dc7 100644 --- a/contrib/isc-dhcp/common/parse.c +++ b/contrib/isc-dhcp/common/parse.c @@ -43,7 +43,7 @@ #ifndef lint static char copyright[] = -"$Id: parse.c,v 1.104.2.8 2002/01/10 19:37:51 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; +"$Id: parse.c,v 1.104.2.9 2002/04/27 05:30:02 murray Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -1804,7 +1804,7 @@ int parse_executable_statement (result, cfile, lose, case_context) executable_statement_dereference (result, MDL); return 0; } - if (parse_semi (cfile)) { + if (!parse_semi (cfile)) { *lose = 1; executable_statement_dereference (result, MDL); return 0; @@ -1964,8 +1964,8 @@ int parse_executable_statement (result, cfile, lose, case_context) log_fatal ("no memory for new zone."); zone -> name = parse_host_name (cfile); if (!zone -> name) { - badzone: parse_warn (cfile, "expecting hostname."); + badzone: *lose = 1; skip_to_semi (cfile); dns_zone_dereference (&zone, MDL); @@ -1974,8 +1974,10 @@ int parse_executable_statement (result, cfile, lose, case_context) i = strlen (zone -> name); if (zone -> name [i - 1] != '.') { s = dmalloc ((unsigned)i + 2, MDL); - if (!s) + if (!s) { + parse_warn (cfile, "no trailing '.' on zone"); goto badzone; + } strcpy (s, zone -> name); s [i] = '.'; s [i + 1] = 0; @@ -1986,10 +1988,8 @@ int parse_executable_statement (result, cfile, lose, case_context) goto badzone; status = enter_dns_zone (zone); if (status != ISC_R_SUCCESS) { - if (parse_semi (cfile)) - parse_warn (cfile, "dns zone key %s: %s", - zone -> name, - isc_result_totext (status)); + parse_warn (cfile, "dns zone key %s: %s", + zone -> name, isc_result_totext (status)); dns_zone_dereference (&zone, MDL); return 0; } diff --git a/contrib/isc-dhcp/common/print.c b/contrib/isc-dhcp/common/print.c index bd244c4..49f1076 100644 --- a/contrib/isc-dhcp/common/print.c +++ b/contrib/isc-dhcp/common/print.c @@ -43,7 +43,7 @@ #ifndef lint static char copyright[] = -"$Id: print.c,v 1.53.2.5 2002/02/09 03:23:19 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; +"$Id: print.c,v 1.53.2.6 2002/04/26 20:17:06 murray Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -1366,8 +1366,8 @@ void print_dns_status (int status, ns_updque *uq) *s++ = '.'; *s++ = 0; if (errorp) - log_error (obuf); + log_error ("%s", obuf); else - log_info (obuf); + log_info ("%s", obuf); } #endif /* NSUPDATE */ diff --git a/contrib/isc-dhcp/configure b/contrib/isc-dhcp/configure index b1db0f0..6fae199 100755 --- a/contrib/isc-dhcp/configure +++ b/contrib/isc-dhcp/configure @@ -119,6 +119,7 @@ if [ "$sysname" = "" ]; then arm32) sysname=netbsd-nocast;; alpha) sysname=netbsd-nocast;; sparc) sysname=netbsd-nocast;; + sparc64) sysname=netbsd-nocast;; *) sysname=netbsd;; esac;; OpenBSD) diff --git a/contrib/isc-dhcp/includes/dhcpd.h b/contrib/isc-dhcp/includes/dhcpd.h index 155d3bf..0db04f7 100644 --- a/contrib/isc-dhcp/includes/dhcpd.h +++ b/contrib/isc-dhcp/includes/dhcpd.h @@ -272,9 +272,11 @@ typedef enum { FTS_ABANDONED = 5, FTS_RESET = 6, FTS_BACKUP = 7, - FTS_LAST = 8 } binding_state_t; +/* FTS_LAST is the highest value that is valid for a lease binding state. */ +#define FTS_LAST FTS_BACKUP + /* A dhcp lease declaration structure. */ struct lease { OMAPI_OBJECT_PREAMBLE; @@ -781,7 +783,7 @@ struct interface_info { int wfdesc; /* Its write file descriptor, if different. */ unsigned char *rbuf; /* Read buffer, if required. */ - size_t rbuf_max; /* Size of read buffer. */ + unsigned int rbuf_max; /* Size of read buffer. */ size_t rbuf_offset; /* Current offset into buffer. */ size_t rbuf_len; /* Length of data in buffer. */ @@ -2411,7 +2413,7 @@ int find_hosts_by_uid PROTO ((struct host_decl **, const unsigned char *, unsigned, const char *, int)); int find_host_for_network PROTO ((struct subnet **, struct host_decl **, struct iaddr *, struct shared_network *)); -void new_address_range PROTO ((struct iaddr, struct iaddr, +void new_address_range PROTO ((struct parse *, struct iaddr, struct iaddr, struct subnet *, struct pool *, struct lease **)); isc_result_t dhcp_lease_free (omapi_object_t *, const char *, int); diff --git a/contrib/isc-dhcp/includes/site.h b/contrib/isc-dhcp/includes/site.h index bc8ca46..b4d910a 100644 --- a/contrib/isc-dhcp/includes/site.h +++ b/contrib/isc-dhcp/includes/site.h @@ -89,7 +89,7 @@ /* Define this if you want all leases written to the lease file, even if they are free leases that have never been used. */ -#define DEBUG_DUMP_ALL_LEASES +/* #define DEBUG_DUMP_ALL_LEASES */ /* Define this if you want DHCP failover protocol support in the DHCP server. */ diff --git a/contrib/isc-dhcp/includes/version.h b/contrib/isc-dhcp/includes/version.h index 91c875f..59e9c28 100644 --- a/contrib/isc-dhcp/includes/version.h +++ b/contrib/isc-dhcp/includes/version.h @@ -1,3 +1,3 @@ /* Current version of ISC DHCP Distribution. */ -#define DHCP_VERSION "V3.0.1rc8" +#define DHCP_VERSION "V3.0.1rc9" diff --git a/contrib/isc-dhcp/omapip/convert.c b/contrib/isc-dhcp/omapip/convert.c index 83d5fc3..b313959 100644 --- a/contrib/isc-dhcp/omapip/convert.c +++ b/contrib/isc-dhcp/omapip/convert.c @@ -44,7 +44,7 @@ #ifndef lint static char copyright[] = -"$Id: convert.c,v 1.1 2000/08/01 22:34:36 neild Exp $ Copyright (c) 1996-1999 The Internet Software Consortium. All rights reserved.\n"; +"$Id: convert.c,v 1.1.2.1 2002/04/27 05:35:20 murray Exp $ Copyright (c) 1996-1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include <omapip/omapip_p.h> @@ -52,7 +52,7 @@ static char copyright[] = u_int32_t getULong (buf) const unsigned char *buf; { - unsigned long ibuf; + u_int32_t ibuf; memcpy (&ibuf, buf, sizeof (u_int32_t)); return ntohl (ibuf); @@ -61,7 +61,7 @@ u_int32_t getULong (buf) int32_t getLong (buf) const unsigned char *buf; { - long ibuf; + int32_t ibuf; memcpy (&ibuf, buf, sizeof (int32_t)); return ntohl (ibuf); |