[Python-checkins] bpo-38730: Replace strncpy in import.c with memcpy. (GH-17633)
Benjamin Peterson
webhook-mailer at python.org
Mon Dec 16 19:40:04 EST 2019
https://github.com/python/cpython/commit/052f47ef5cc363e842e0e839980cfa55ada123b5
commit: 052f47ef5cc363e842e0e839980cfa55ada123b5
branch: 2.7
author: Benjamin Peterson <benjamin at python.org>
committer: GitHub <noreply at github.com>
date: 2019-12-16T16:39:57-08:00
summary:
bpo-38730: Replace strncpy in import.c with memcpy. (GH-17633)
In all these cases, we know the exact length we want copied, so memcpy is the right function to use.
files:
M Python/import.c
diff --git a/Python/import.c b/Python/import.c
index ccbd949e624f1..b79354b37a406 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -2456,7 +2456,7 @@ get_parent(PyObject *globals, char *buf, Py_ssize_t *p_buflen, int level)
"Module name too long");
return NULL;
}
- strncpy(buf, start, len);
+ memcpy(buf, start, len);
buf[len] = '\0';
pkgname = PyString_FromString(buf);
if (pkgname == NULL) {
@@ -2554,7 +2554,7 @@ load_next(PyObject *mod, PyObject *altmod, char **p_name, char *buf,
"Module name too long");
return NULL;
}
- strncpy(p, name, len);
+ memcpy(p, name, len);
p[len] = '\0';
*p_buflen = p+len-buf;
@@ -2568,7 +2568,7 @@ load_next(PyObject *mod, PyObject *altmod, char **p_name, char *buf,
Py_DECREF(result);
return NULL;
}
- strncpy(buf, name, len);
+ memcpy(buf, name, len);
buf[len] = '\0';
*p_buflen = len;
}
More information about the Python-checkins
mailing list