diff options
author | Jeff King <peff@peff.net> | 2014-06-19 17:26:56 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-19 15:20:54 -0700 |
commit | b2724c87872aaec55dd7e5529aa029c3108b43a5 (patch) | |
tree | 905e0c855f087699b8a5fd8054271a8e7c5d9dad /sha1_name.c | |
parent | 283101869bea8feb5d58f6ea1b568e9b197526d3 (diff) | |
download | git-b2724c87872aaec55dd7e5529aa029c3108b43a5.tar.gz |
use xstrfmt to replace xmalloc + strcpy/strcat
It's easy to get manual allocation calculations wrong, and
the use of strcpy/strcat raise red flags for people looking
for buffer overflows (though in this case each site was
fine).
It's also shorter to use xstrfmt, and the printf-format
tends to be easier for a reader to see what the final string
will look like.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_name.c')
-rw-r--r-- | sha1_name.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/sha1_name.c b/sha1_name.c index 2b6322fad0..5e956904b6 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -1252,10 +1252,7 @@ static void diagnose_invalid_sha1_path(const char *prefix, die("Path '%s' exists on disk, but not in '%.*s'.", filename, object_name_len, object_name); if (errno == ENOENT || errno == ENOTDIR) { - char *fullname = xmalloc(strlen(filename) - + strlen(prefix) + 1); - strcpy(fullname, prefix); - strcat(fullname, filename); + char *fullname = xstrfmt("%s%s", prefix, filename); if (!get_tree_entry(tree_sha1, fullname, sha1, &mode)) { |