[Bug c/83959] New: Missing buffer overflow warning on printf %s
prathamesh3492 at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jan 21 18:00:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83959
Bug ID: 83959
Summary: Missing buffer overflow warning on printf %s
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: prathamesh3492 at gcc dot gnu.org
Target Milestone: ---
int main(void)
{
char a[3] = "xyz";
__builtin_printf ("%s", a);
return 0;
}
No warning generated with -Wall -Wextra -Wstringop-overflow=2.
Should -Wstringop-overflow be catching this case ?
I wonder if the compiler should warn (with Wextra maybe?) for
char a[3] = "xyz";
ie when sizeof(array) == strlen(initializier) ?
Although the above initializer doesn't cause overflow by itself, I suppose
almost
all string functions expect char arrays to end with '\0' and would end up
looking past end of array thus causing overflow.
Thanks,
Prathamesh
More information about the Gcc-bugs
mailing list