From 1600f60414e620c4298c15dac803427d8f0a977c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 30 Nov 2018 15:03:53 +0100 Subject: [PATCH] Fix compiler warning in call_readline() (GH-10820) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/readline.c b/Modules/readline.c index 7756e6b2bc7..7f366aabfb4 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -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'; }