https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88059
Rangel Moreira Fischer <rangel_fischer at yahoo dot com.br> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rangel_fischer at yahoo dot 
com.br

--- Comment #4 from Rangel Moreira Fischer <rangel_fischer at yahoo dot com.br> 
---
Same problem too.

static void write_my_message( char* message, size_t max_message_size, char*
my_message )
{
    size_t messag_len = strlen(my_message) + 1;

    if( messag_len > max_message_size )
    {
        // trunc message
        strncpy(message, my_message, max_message_size - 1);  // ex:
max_message_size = max buf size = 50(0 to 49). 0 to 48 = 49
elements(max_message_size - 1). 
        message[max_message_size - 1] = '\0';  // message[50-1] = message[49] =
'\0'.
    }
    else
    {        
        strncpy(message, my_message, messag_len);
    }     
}


In function 'write_my_message':

error: 'strncpy' specified bound depends on the length of the source argument
[-Werror=stringop-overflow=]

strncpy(message, my_message, messag_len);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

note: length computed here
size_t messag_len = strlen(my_message) + 1;
                    ^~~~~~~~~~~~~~~~~~

Reply via email to