svn commit: r304653 - head/usr.bin/indent
Pedro F. Giffuni
pfg at FreeBSD.org
Tue Aug 23 02:07:09 UTC 2016
Author: pfg
Date: Tue Aug 23 02:07:08 2016
New Revision: 304653
URL: https://svnweb.freebsd.org/changeset/base/304653
Log:
indent(1): Fix off-by-one in control flow leading dead code.
Coverity correctly reported that it's impossible for /comparison/ to be 0
here, because the only way for the for loop to end is by /comparison/
being < 0.
Fortunately the consequences of this bug weren't severe; for duplicated
entries in the typedef names file it would unnecessarily duplicate strings
with strdup(), but pointers to those would replace existing ones. So this
was a memory leak at worst.
CID: 1361477
Obtained from: Piotr Stephaniak
Modified:
head/usr.bin/indent/lexi.c
Modified: head/usr.bin/indent/lexi.c
==============================================================================
--- head/usr.bin/indent/lexi.c Tue Aug 23 02:06:20 2016 (r304652)
+++ head/usr.bin/indent/lexi.c Tue Aug 23 02:07:08 2016 (r304653)
@@ -613,7 +613,7 @@ add_typename(const char *key)
else {
int p;
- for (p = 0; (comparison = strcmp(key, typenames[p])) >= 0; p++)
+ for (p = 0; (comparison = strcmp(key, typenames[p])) > 0; p++)
/* find place for the new key */;
if (comparison == 0) /* remove duplicates */
return;
More information about the svn-src-head
mailing list