...
 
Commits (9)
*.lo
*.o
bind
doc/html
.deps
Makefile
......
......@@ -34,21 +34,13 @@ want. It would be extremely helpful if you can attach any configuration files (d
dhclient), along with a step-by-step procedure to carry out the test(s). This will help us verify
your changes as extend our own system tests.
Building ISC DHCP code from the repository is slightly different than the release tarballs. One
major difference is that it does not have BIND source bundled inside and those have to be
downloaded separately. Fortunately, there's an easy to use script for that:
```bash
sh util/bind.sh v4_4
./configure --with-atf
make
```
Make sure you have ATF (Automated Test Framework) installed in your system. For more information
about ATF, please refer to <dhcp source tree>/doc/devel/atf.dox. Note, running "make devel" in this
directory will generate the documentation. To run the unit-tests, simply run:
```bash
./configure --with-atf
make
make check
```
......@@ -79,7 +71,7 @@ as perceived by the ISC engineer, the issue and/or MR will be assigned to one of
## Merge Request (also known as sending your patch the right way)
The first step in writing the patch or new feature should be to get the source code from our Git
repository. The procedure is very easy and is [explained here](https://gitlab.isc.org/isc-projects/dhcp/wikis/gitlab-howto).
repository. The procedure is very easy and is [explained here](https://gitlab.isc.org/isc-projects/dhcp/wikis/processes/gitlab-howto).
While it is possible to provide a patch against the latest stable release, it makes the review
process much easier if it is for latest code from the Git master branch.
......
......@@ -102,7 +102,7 @@ by Eric Young (eay@cryptsoft.com).
than in seconds (via ping-timeout). When greater than zero, the value
of ping-timeout-ms will override the value of ping-timeout. Thanks
to Jay Doran from Bluecat Networks for suggesting this feature.
[ISC-Bugs #10,!6 git ebe4f7ae427fa91f561a0b6e5f242de08d319a16]
[Gitlab #10,!6 git ebe4f7ae427fa91f561a0b6e5f242de08d319a16]
Changes since 4.4.1 (Bug Fixes)
......@@ -115,7 +115,7 @@ by Eric Young (eay@cryptsoft.com).
- Bind9 now defaults to requiring python to build. The Makefile for
building Bind9 when bundled with ISC DHCP was modified to turn off
this dependency.
[ISC-Bugs #3,!1 git cc35f84943df44dac2499f3e16e8aaba7d54191d]
[Gitlab #3,!1 git cc35f84943df44dac2499f3e16e8aaba7d54191d]
- Corrected a dual-stack mixed-mode issue that occurs when both
ddns-guard-id-must-match and ddns-other-guard-is-dynamic
......@@ -123,21 +123,29 @@ by Eric Young (eay@cryptsoft.com).
the presence of a guard record belonging to another client as
a case of no guard record at all. Thanks to Fernando Soto
from BlueCat Networks for reporting this issue.
[ISC-Bugs #1,!2 git 9ef78585440f568da2a2a0093a8c40c49118e292]
[Gitlab #1,!2 git 9ef78585440f568da2a2a0093a8c40c49118e292]
- Corrected a compilation issue that occurred when building without DNS
update ability (e.g. by undefining NSUPDATE).
[ISC-Bugs #16,!9 git ddb508ac083dae4ff83279dd240bad7f73a97b7d]
[Gitlab #16,!9 git ddb508ac083dae4ff83279dd240bad7f73a97b7d]
- Corrected an issue that was causing the server, when running in
DHPCv4 mode, to segfault when class lease limits are reached.
Thanks to Peter Nagy at Porion-Digital for reporting the matter
and submitting a patch.
[ISC-Bugs #13,!7 git dfcbe359ab278cad70015994ca73ef50d626b23a]
[Gitlab #13,!7 git dfcbe359ab278cad70015994ca73ef50d626b23a]
- Made minor changes to eliminate warnings when compiled with GCC 9.
Thanks to Brett Neumeier for bringing the matter to our attention.
[ISC-Bugs #15,!10 git c138f38bd00ceca4e1e51a4db7542a15ef79babd]
[Gitlab #15,!10 git c138f38bd00ceca4e1e51a4db7542a15ef79babd]
- Fixed potential memory leaks in parser error message generation
spotted by Coverity, CIDs: 1448191, 1448193, 1448194, 1448195
[Gitlab #30,!16 git d73dd575a2353960568aed80d51e1e299137c982]
- Updated URL of IEEE oui.txt in contrib/dhcp-lease-list.pl. Thanks
to Tommy Smith for contributing the patch.
[Gitlab #26,!15 git c6c4db599aa5fb562e95e723cef00a3e30c3b14b]
Changes since 4.4.0 (New Features)
- none
......
#
# Copyright (C) 2009-2018 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# Configure and build the bind libraries for use by DHCP
binddir=@BINDDIR@
bindsrcdir=@BINDSRCDIR@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindconfig = --without-openssl --without-libxml2 --without-libjson \
--without-gssapi --disable-threads --without-lmdb \
--includedir=@includedir@ --libdir=@libdir@ --without-python\
@BINDLT@ @BINDIOMUX@ @BINDCONFIG@ --enable-full-report
@BIND_ATF_FALSE@cleandirs = ./lib ./include
@BIND_ATF_TRUE@cleandirs = ./lib ./include ./atf
cleanfiles = ./configure.log ./build.log ./install.log
bindlibs = isc dns isccfg irs
installdirs = includedir=${binddir}/include libdir=${binddir}/lib
@BIND_ATF_FALSE@all: bind1 bind2
@BIND_ATF_TRUE@all: bind1 atf bind2
bind1:
# Extract the source from the tarball, if it hasn't been already.
@if test -d ${bindsrcdir} ; then \
echo ${bindsrcdir} already unpacked... ; \
else \
gunzip -c bind.tar.gz | tar xf - ; \
fi
# Configure the libraries
# Currently disable the epoll, devpoll and kqueue options as they
# don't interact well with the DHCP code.
# If the top-level Bind Makefile exists we skip the configuration step
# as we assume it's done and won't change. Doing a make clean will
# reset things if necessary.
@if test -f ${bindsrcdir}/Makefile ; then \
echo Bind libraries already configured ; \
else \
echo Configuring BIND libraries for DHCP. ; \
rm -rf ${cleandirs} ${cleanfiles} ; \
(cd ${bindsrcdir} && \
./configure ${bindconfig} > ${binddir}/configure.log); \
fi
atf:
# Build and copy the ATF support if not yet installed.
@if test -d ./atf ; then \
echo ATF support already installed ; \
else \
echo Building ATF support ; \
(cd ${bindsrcdir}/unit; \
$(MAKE) atf > ${binddir}/build.log ; \
cp -rp atf ${binddir}) ; \
fi
bind2:
# Build and install the libraries
# No need to do anything if we already have something installed.
@if test -d ${binddir}/lib ; then \
echo Bind libraries already installed ; \
else \
echo Building BIND libraries - this takes some time. ; \
for libdir in ${bindlibs} ; do \
(cd ${bindsrcdir}/lib/$$libdir ; \
echo Building $$libdir library in `pwd` ; \
$(MAKE) all >> ${binddir}/build.log) ; \
done ; \
\
echo Installing BIND libraries to ${binddir}. ; \
for libdir in ${bindlibs} ; do \
(cd ${bindsrcdir}/lib/$$libdir ; \
MAKEDEFS="${installdirs}"; export MAKEDEFS; \
$(MAKE) ${installdirs} LIBTOOL_MODE_INSTALL= install >> \
${binddir}/install.log) ; \
done ; \
fi
clean:
@echo Cleaning BIND library.
rm -rf ${bindsrcdir} ${cleandirs} ${cleanfiles}
@INSTALL_BIND_FALSE@install:
@INSTALL_BIND_TRUE@install: install-bind
install-bind: all
@for libdir in ${bindlibs} ; do \
(cd ${bindsrcdir}/lib/$$libdir ; \
$(MAKE) install) ; \
done
@INSTALL_BIND_FALSE@uninstall:
@INSTALL_BIND_TRUE@uninstall: uninstall-bind
uninstall-bind: all
@for libdir in ${bindlibs} ; do \
(cd ${bindsrcdir}/lib/$$libdir ; \
$(MAKE) uninstall) ; \
done
# Include the following so that this Makefile is happy when the parent
# tries to use them.
check distdir distclean dvi installcheck:
# This file must follow /bin/sh rules. It is imported directly via
# configure.
#
PRODUCT=BIND
DESCRIPTION="(Extended Support Version)"
MAJORVER=9
MINORVER=11
PATCHVER=8
RELEASETYPE=
RELEASEVER=
EXTENSIONS=
......@@ -20,6 +20,8 @@
#
# 2016-01-18 - Mainly cosmetics. Eliminated spurious output in "parsable" mode.
# Provided for the various conventional lease file locations. (cbp)
#
# 2019-06-20 - Updated OUI_URL location. -TS
use strict;
use warnings;
......@@ -30,7 +32,7 @@ my @all_leases;
my @leases;
my @OUIS = ('/usr/share/misc/oui.txt', '/usr/local/etc/oui.txt');
my $OUI_URL = 'http://standards.ieee.org/regauth/oui/oui.txt';
my $OUI_URL = 'http://standards-oui.ieee.org/oui.txt';
my $oui;
my %data;
......
......@@ -3578,6 +3578,11 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile)
if (token != EQUAL) {
parse_warn (cfile,
"expecting '=' in set statement.");
binding_value_dereference(&nv, MDL);
if (newbinding) {
dfree(binding->name, MDL);
dfree(binding, MDL);
}
goto badset;
}
}
......@@ -3585,6 +3590,10 @@ int parse_lease_declaration (struct lease **lp, struct parse *cfile)
if (!parse_binding_value(cfile, nv)) {
binding_value_dereference(&nv, MDL);
lease_dereference(&lease, MDL);
if (newbinding) {
dfree(binding->name, MDL);
dfree(binding, MDL);
}
return 0;
}
......@@ -4762,6 +4771,7 @@ parse_ia_na_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
ia_dereference(&ia, MDL);
return;
}
......@@ -5209,6 +5219,7 @@ parse_ia_ta_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
ia_dereference(&ia, MDL);
return;
}
......@@ -5646,6 +5657,7 @@ parse_ia_pd_declaration(struct parse *cfile) {
if (token != LBRACE) {
parse_warn(cfile, "corrupt lease file; expecting left brace");
skip_to_semi(cfile);
ia_dereference(&ia, MDL);
return;
}
......