diff options
author | Jeff King <peff@peff.net> | 2015-09-24 17:07:03 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-09-25 10:18:18 -0700 |
commit | 75faa45ae0230b321bf72027b2274315d7e14e34 (patch) | |
tree | 3b4aa1b362078ba4db498a087f3330ffe7affbd8 /reflog-walk.c | |
parent | b7115a350b5c01ce0ae7a8735e4235d4b2367b5f (diff) | |
download | git-75faa45ae0230b321bf72027b2274315d7e14e34.tar.gz |
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>
Diffstat (limited to 'reflog-walk.c')
-rw-r--r-- | reflog-walk.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/reflog-walk.c b/reflog-walk.c index f8e743a23b..85b8a54241 100644 --- a/reflog-walk.c +++ b/reflog-walk.c @@ -56,12 +56,11 @@ static struct complete_reflogs *read_complete_reflog(const char *ref) } } if (reflogs->nr == 0) { - int len = strlen(ref); - char *refname = xmalloc(len + 12); - sprintf(refname, "refs/%s", ref); + char *refname = xstrfmt("refs/%s", ref); for_each_reflog_ent(refname, read_one_reflog, reflogs); if (reflogs->nr == 0) { - sprintf(refname, "refs/heads/%s", ref); + free(refname); + refname = xstrfmt("refs/heads/%s", ref); for_each_reflog_ent(refname, read_one_reflog, reflogs); } free(refname); |