aboutsummaryrefslogtreecommitdiff
path: root/bin/lc
diff options
context:
space:
mode:
authorFazlul Shahriar <fshahriar@gmail.com>2019-09-19 13:08:54 -0400
committerDan Cross <crossd@gmail.com>2019-09-19 13:08:54 -0400
commitb9424f640a0493359fd2af7c670c5a4ced334e6b (patch)
treeb98a9781b5000fd33467ffc2d480a027a68a196d /bin/lc
parent7d827b5cca185b411be3ac9b71834958f4737bdf (diff)
downloadplan9port-b9424f640a0493359fd2af7c670c5a4ced334e6b.tar.gz
plan9port-b9424f640a0493359fd2af7c670c5a4ced334e6b.tar.bz2
plan9port-b9424f640a0493359fd2af7c670c5a4ced334e6b.zip
plumber: fix EOF detection on writes to rules file (#257)
Instead of checking Fcall.data==nil, check Fcall.count==0. The former check always fails after `gcc -O2` optimizations (gcc version 8.3.0). Also fix an out-of-bound read detected by valgrind: ``` ==31162== Invalid read of size 1 ==31162== at 0x11005E: morerules (rules.c:739) ==31162== by 0x110254: writerules (rules.c:775) ==31162== by 0x10D2FE: fsyswrite (fsys.c:848) ==31162== by 0x10C304: fsysproc (fsys.c:248) ==31162== by 0x112E8C: threadstart (thread.c:96) ==31162== by 0x4A682BF: ??? (in /usr/lib/libc-2.29.so) ==31162== Address 0x4ea984a is 0 bytes after a block of size 250 alloc'd ==31162== at 0x483AD7B: realloc (vg_replace_malloc.c:826) ==31162== by 0x1196F3: p9realloc (malloc.c:53) ==31162== by 0x10BDFD: erealloc (plumber.c:124) ==31162== by 0x10FCD9: concat (rules.c:642) ==31162== by 0x10FCD9: concat (rules.c:635) ==31162== by 0x110230: writerules (rules.c:773) ==31162== by 0x10D2FE: fsyswrite (fsys.c:848) ==31162== by 0x10C304: fsysproc (fsys.c:248) ==31162== by 0x112E8C: threadstart (thread.c:96) ==31162== by 0x4A682BF: ??? (in /usr/lib/libc-2.29.so) ``` Fixes #256
Diffstat (limited to 'bin/lc')
0 files changed, 0 insertions, 0 deletions