diff options
author | Russell Belfer <rb@github.com> | 2012-12-19 15:06:14 -0800 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-01-04 15:47:42 -0800 |
commit | 8fe713ccf7bf8c6330fdda7f0c733e7f3ab29d3f (patch) | |
tree | afb53ab99c90d710cd31fa9bb21cf03c059778b9 | |
parent | 5cf9875a4f6ee6fa26f5617aca8433dd49c72751 (diff) | |
download | libgit2-8fe713ccf7bf8c6330fdda7f0c733e7f3ab29d3f.tar.gz |
Make git_oid_tostr use out buffer for NULL oid
Previously a NULL oid was handled like an empty buffer and
returned a status empty string. This makes git_oid_tostr()
set the output buffer to the empty string instead.
-rw-r--r-- | src/oid.c | 4 | ||||
-rw-r--r-- | tests-clar/object/raw/convert.c | 4 |
2 files changed, 4 insertions, 4 deletions
@@ -95,12 +95,12 @@ char *git_oid_tostr(char *out, size_t n, const git_oid *oid) { char str[GIT_OID_HEXSZ]; - if (!out || n == 0 || !oid) + if (!out || n == 0) return ""; n--; /* allow room for terminating NUL */ - if (n > 0) { + if (n > 0 && oid != NULL) { git_oid_fmt(str, oid); if (n > GIT_OID_HEXSZ) n = GIT_OID_HEXSZ; diff --git a/tests-clar/object/raw/convert.c b/tests-clar/object/raw/convert.c index 7f310ddf0..74442c153 100644 --- a/tests-clar/object/raw/convert.c +++ b/tests-clar/object/raw/convert.c @@ -21,9 +21,9 @@ void test_object_raw_convert__succeed_on_oid_to_string_conversion(void) str = git_oid_tostr(out, 0, &in); cl_assert(str && *str == '\0' && str != out); - /* NULL oid pointer, returns static empty string */ + /* NULL oid pointer, sets existing buffer to empty string */ str = git_oid_tostr(out, sizeof(out), NULL); - cl_assert(str && *str == '\0' && str != out); + cl_assert(str && *str == '\0' && str == out); /* n == 1, returns out as an empty string */ str = git_oid_tostr(out, 1, &in); |