mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 14:12:22 +00:00
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.
This commit is contained in:
parent
5cf9875a4f
commit
8fe713ccf7
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user