mirror of
git://git.code.sf.net/p/dhcpd-pools/code
synced 2025-12-16 15:57:00 +00:00
getdata: fix buffer-overflows reported by address sanitizer
These happen when input configuration or leases files are empty.
==12876==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x61900000a480 at pc 0x000000487442 bp 0x7fffbc3e16b0 sp 0x7fffbc3e0e70
READ of size 1025 at 0x61900000a480 thread T0
#0 0x487441 in __interceptor_strlen (/home/src/dhcpd-pools/dhcpd-pools+0x487441)
#1 0x4bbb10 in parse_leases /home/src/dhcpd-pools/src/getdata.c:112:35
#2 0x4bb337 in main /home/src/dhcpd-pools/src/dhcpd-pools.c:268:2
#3 0x7f51909bf03f in __libc_start_main (/usr/lib/libc.so.6+0x2003f)
#4 0x4b9c0c in _start (/home/src/dhcpd-pools/dhcpd-pools+0x4b9c0c)
0x61900000a480 is located 0 bytes to the right of 1024-byte region
[0x61900000a080,0x61900000a480)
allocated by thread T0 here:
#0 0x49c58b in __interceptor_malloc (/home/src/dhcpd-pools/dhcpd-pools+0x49c58b)
#1 0x4cbbcd in xmalloc /home/src/dhcpd-pools/lib/xmalloc.c:41:13
#2 0x4bb801 in parse_leases /home/src/dhcpd-pools/src/getdata.c:96:9
#3 0x4bb337 in main /home/src/dhcpd-pools/src/dhcpd-pools.c:268:2
#4 0x7f51909bf03f in __libc_start_main (/usr/lib/libc.so.6+0x2003f)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
74c6ef2566
commit
15502d3c97
1 changed files with 2 additions and 0 deletions
|
|
@ -94,7 +94,9 @@ int parse_leases(void)
|
|||
}
|
||||
|
||||
line = xmalloc(sizeof(char) * MAXLEN);
|
||||
line[0] = '\0';
|
||||
ipstring = xmalloc(sizeof(char) * MAXLEN);
|
||||
ipstring[0] = '\0';
|
||||
if (config.output_format[0] == 'X' || config.output_format[0] == 'J') {
|
||||
ethernets = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue