Commit 98905204 authored by Victor Stinner's avatar Victor Stinner Committed by GitHub

Fix compiler warning in structseq_repr() (GH-10841)

Replace strncpy() with memcpy() in structseq_repr() to fix the
following compiler warning:

Objects/structseq.c:187:5: warning: 'strncpy' specified bound depends on the length of the source argument [-Wstringop-overflow=]
     strncpy(pbuf, typ->tp_name, len);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Objects/structseq.c:185:11: note: length computed here
     len = strlen(typ->tp_name) > TYPE_MAXSIZE ? TYPE_MAXSIZE :

The function writes the terminating NUL byte later.
parent 503ce5c4
......@@ -182,9 +182,9 @@ structseq_repr(PyStructSequence *obj)
endofbuf= &buf[REPR_BUFFER_SIZE-5];
/* "typename(", limited to TYPE_MAXSIZE */
len = strlen(typ->tp_name) > TYPE_MAXSIZE ? TYPE_MAXSIZE :
strlen(typ->tp_name);
strncpy(pbuf, typ->tp_name, len);
len = strlen(typ->tp_name);
len = Py_MIN(len, TYPE_MAXSIZE);
memcpy(pbuf, typ->tp_name, len);
pbuf += len;
*pbuf++ = '(';
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment