https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79082

--- Comment #12 from Martin Sebor <msebor at gcc dot gnu.org> ---
(In reply to Sylvestre Ledru from comment #11)
> Other testcase:
> ---
> #include <stdio.h>
> #include <stdint.h>
> int main() {
>     char* buf = new char[10];
>     uint8_t data = 255;
>     printf("%.2x\n", data);    // just print data
>     snprintf(&buf[0], 2, "%.2x", data);
>     return 0;
> }
> ---
> 
> foo.c:7:13: note: format output 3 bytes into a destination of size 2
>      snprintf(&buf[0], 2, "%.2x", data);
>      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

This is warning is valid.  The function is called with a buffer size of 2 bytes
but the total output for 255 in hex ("ff") and the terminating nul would be 3
bytes.  The output is truncated after the first 'f' which is usually a bug.

Reply via email to