]> granicus.if.org Git - python/commitdiff
Fix compiler warning in call_readline() (GH-10820)
authorVictor Stinner <vstinner@redhat.com>
Fri, 30 Nov 2018 14:03:53 +0000 (15:03 +0100)
committerGitHub <noreply@github.com>
Fri, 30 Nov 2018 14:03:53 +0000 (15:03 +0100)
Replace strncpy() with memcpy() in call_readline() to fix the
following warning, the NUL byte is written manually just after:

Modules/readline.c: In function ‘call_readline’:
Modules/readline.c:1303:9: warning: ‘strncpy’ output truncated before
terminating nul copying as many bytes from a string as its length
[-Wstringop-truncation]
         strncpy(p, q, n);
         ^~~~~~~~~~~~~~~~
Modules/readline.c:1279:9: note: length computed here
     n = strlen(p);
         ^~~~~~~~~

Modules/readline.c

index 7756e6b2bc75b380452cb0d3c97b8d72283d6cd7..7f366aabfb4f43aa7ccf05586d8cf70c75c7fe5a 100644 (file)
@@ -1240,7 +1240,7 @@ static char *
 call_readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
 {
     size_t n;
-    char *p, *q;
+    char *p;
     int signal;
 
 #ifdef SAVE_LOCALE
@@ -1297,10 +1297,10 @@ call_readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
     }
     /* Copy the malloc'ed buffer into a PyMem_Malloc'ed one and
        release the original. */
-    q = p;
+    char *q = p;
     p = PyMem_RawMalloc(n+2);
     if (p != NULL) {
-        strncpy(p, q, n);
+        memcpy(p, q, n);
         p[n] = '\n';
         p[n+1] = '\0';
     }