I found a minor bug in __str2flags where empty strings or short strings
will match all or many flags respectively. Basically the test needs to
ensure the test string is the same length as the table entry before
doing a strncasecmp to avoid doing just a prefix test.
t = strchr(p, ',');
len = t ? t - p : strlen(p);
for (i = 0; i < tbl_len; i++)
- if (!strncasecmp(tbl[i].a, p, len))
+ if (len == strlen(tbl[i].a) &&
+ !strncasecmp(tbl[i].a, p, len))
flags |= tbl[i].i;
if (!t)