replace trivial malloc + sprintf / strcpy calls with xstrfmt
It's a common pattern to do: foo = xmalloc(strlen(one) + strlen(two) + 1 + 1); sprintf(foo, "%s %s", one, two); (or possibly some variant with strcpy()s or a more complicated length computation). We can switch these to use xstrfmt, which is shorter, involves less error-prone manual computation, and removes many sprintf and strcpy calls which make it harder to audit the code for real buffer overflows. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
b7115a350b
commit
75faa45ae0
@ -143,11 +143,8 @@ static char *git_path_from_env(const char *envvar, const char *git_dir,
|
||||
const char *path, int *fromenv)
|
||||
{
|
||||
const char *value = getenv(envvar);
|
||||
if (!value) {
|
||||
char *buf = xmalloc(strlen(git_dir) + strlen(path) + 2);
|
||||
sprintf(buf, "%s/%s", git_dir, path);
|
||||
return buf;
|
||||
}
|
||||
if (!value)
|
||||
return xstrfmt("%s/%s", git_dir, path);
|
||||
if (fromenv)
|
||||
*fromenv = 1;
|
||||
return xstrdup(value);
|
||||
|
Reference in New Issue
Block a user