chiark
/
gitweb
/
~ianmdlvl
/
adns.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8fbc5b1
)
setup.c: Do not make wild pointer access if resolv.conf prefix length insane
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Wed, 23 Nov 2016 17:08:26 +0000
(17:08 +0000)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Tue, 26 May 2020 19:14:26 +0000
(20:14 +0100)
(Found by AFL.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/setup.c
patch
|
blob
|
history
diff --git
a/src/setup.c
b/src/setup.c
index 54b93a89d0d763b0972a6da17158732d158aa76d..f1c7dfec3f9247f6625ee2a1a08d225492438e30 100644
(file)
--- a/
src/setup.c
+++ b/
src/setup.c
@@
-228,11
+228,12
@@
static void ccf_sortlist(adns_state ads, const char *fn,
}
} else {
maskwhat = "prefix length";
-
initial
= strtoul(slash,&ep,10);
- if (*ep ||
initial
>adns__addr_width(sl->base.sa.sa_family)) {
+
unsigned long prefixlen
= strtoul(slash,&ep,10);
+ if (*ep ||
prefixlen
>adns__addr_width(sl->base.sa.sa_family)) {
configparseerr(ads,fn,lno,"mask length `%s' invalid",slash);
continue;
}
+ initial= prefixlen;
sl->mask.sa.sa_family= sl->base.sa.sa_family;
adns__prefix_mask(&sl->mask, initial);
}