[Bug tree-optimization/87382] New: warn for strncpy with a bound greater than the size of source array
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 21 18:10:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87382
Bug ID: 87382
Summary: warn for strncpy with a bound greater than the size of
source array
Product: gcc
Version: 9.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: ---
I got the following feedback/request for an enhancement to
-Wstringop-truncation (or some other warning).
> Example 3: this warns only if src is nonstring (because then it is
> guaranteed to be an invalid program). The issue here is that, since
> Example 1 warns due to "specified bound 12 equals destination size",
> it may be confusing that this doesn't (because the warning of Example
> 1 does not reference src in any way).
>
> extern char dst[12];
> extern char src[4];
> void f(void) {
> // no warning
> strncpy(dst, src, sizeof(dst));
> }
My response is that: here the assumption is that the source is nul-terminated
but
I agree that there is a potential problem lurking here: why would the
programmer specify a larger bound than the size of the source? This might be
worth warning about as well, for that reason. (I.e., not because the result
may not be nul-terminated, but because it suggests that the programmer may have
used the size of the wrong argument as the bound.)
More information about the Gcc-bugs
mailing list