[Python-checkins] bpo-36365: Fix compiler warning in structseq.c (GH-12451)

Victor Stinner webhook-mailer at python.org
Tue Mar 19 19:32:22 EDT 2019


https://github.com/python/cpython/commit/ea3592d7ef6308bf9f6c7d86556f9b36f5ca0060
commit: ea3592d7ef6308bf9f6c7d86556f9b36f5ca0060
branch: 3.7
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019-03-20T00:32:11+01:00
summary:

bpo-36365: Fix compiler warning in structseq.c (GH-12451)

files:
M Objects/structseq.c

diff --git a/Objects/structseq.c b/Objects/structseq.c
index 900aaba7c150..e48165dcd008 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -182,10 +182,16 @@ 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);
-    pbuf += len;
+    assert(TYPE_MAXSIZE < sizeof(buf));
+    len = strlen(typ->tp_name);
+    if (len <= TYPE_MAXSIZE) {
+        strcpy(pbuf, typ->tp_name);
+        pbuf += len;
+    }
+    else {
+        strncpy(pbuf, typ->tp_name, TYPE_MAXSIZE);
+        pbuf += TYPE_MAXSIZE;
+    }
     *pbuf++ = '(';
 
     for (i=0; i < VISIBLE_SIZE(obj); i++) {



More information about the Python-checkins mailing list