prefer memcpy to strcpy
When we already know the length of a string (e.g., because we just malloc'd to fit it), it's nicer to use memcpy than strcpy, as it makes it more obvious that we are not going to overflow the buffer (because the size we pass matches the size in the allocation). This also eliminates calls to strcpy, which make auditing the code base harder. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4c9ac3bfaa
commit
34fa79a6cd
@ -957,8 +957,9 @@ char *strdup(const char *s1)
|
||||
{
|
||||
char *s2 = 0;
|
||||
if (s1) {
|
||||
s2 = malloc(strlen(s1) + 1);
|
||||
strcpy(s2, s1);
|
||||
size_t len = strlen(s1) + 1;
|
||||
s2 = malloc(len);
|
||||
memcpy(s2, s1, len);
|
||||
}
|
||||
return s2;
|
||||
}
|
||||
|
@ -644,8 +644,9 @@ static void *pool_calloc(size_t count, size_t size)
|
||||
|
||||
static char *pool_strdup(const char *s)
|
||||
{
|
||||
char *r = pool_alloc(strlen(s) + 1);
|
||||
strcpy(r, s);
|
||||
size_t len = strlen(s) + 1;
|
||||
char *r = pool_alloc(len);
|
||||
memcpy(r, s, len);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ char *path_name(const struct name_path *path, const char *name)
|
||||
}
|
||||
n = xmalloc(len);
|
||||
m = n + len - (nlen + 1);
|
||||
strcpy(m, name);
|
||||
memcpy(m, name, nlen + 1);
|
||||
for (p = path; p; p = p->up) {
|
||||
if (p->elem_len) {
|
||||
m -= p->elem_len + 1;
|
||||
|
Loading…
Reference in New Issue
Block a user