[Bug tree-optimization/86199] New: warn on calls to strlen with same argument as in strnlen
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jun 18 18:01:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86199
Bug ID: 86199
Summary: warn on calls to strlen with same argument as in
strnlen
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
The the call to strlen() in the test case below is most likely unsafe because
the subsequent call to strnlen() suggests that the array need not be
nul-terminated. If it is nul-terminated, then the call to strnlen() can be
replaced by strlen(). Either way, the code looks suspicious and diagnosing it
would be helpful.
$ cat c.c && gcc -O2 -S -Wall -Wextra c.c
char a[4];
unsigned n0, n1;
void f (void)
{
n0 = __builtin_strlen (a); // possibly unsafe?
// ...
n1 = __builtin_strnlen (a, sizeof a); // could be replaced by strlen()?
}
More information about the Gcc-bugs
mailing list