diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-01-29 22:37:12 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-29 22:37:12 +0000 |
commit | 895fd51a434ac50ebd53e996bd9149302ca3e134 (patch) | |
tree | 0011f4797b360cf1a045c73af82411816f833347 /src/tree.c | |
parent | c935b926c90a1b5b35caa7b8fb8dedd54b235ec5 (diff) | |
parent | 275f103d4c515d40c73cc17ae7880f1091414393 (diff) | |
download | libgit2-895fd51a434ac50ebd53e996bd9149302ca3e134.tar.gz |
Merge pull request #4474 from pks-t/pks/null-oid
Special-casing null OIDs
Diffstat (limited to 'src/tree.c')
-rw-r--r-- | src/tree.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/tree.c b/src/tree.c index 75fde2c8f..6a136a6b7 100644 --- a/src/tree.c +++ b/src/tree.c @@ -498,6 +498,9 @@ static int append_entry( if (!valid_entry_name(bld->repo, filename)) return tree_error("failed to insert entry: invalid name for a tree entry", filename); + if (git_oid_iszero(id)) + return tree_error("failed to insert entry: invalid null OID for a tree entry", filename); + entry = alloc_entry(filename, strlen(filename), id); GITERR_CHECK_ALLOC(entry); @@ -740,6 +743,9 @@ int git_treebuilder_insert( if (!valid_entry_name(bld->repo, filename)) return tree_error("failed to insert entry: invalid name for a tree entry", filename); + if (git_oid_iszero(id)) + return tree_error("failed to insert entry: invalid null OID", filename); + if (filemode != GIT_FILEMODE_COMMIT && !git_object__is_valid(bld->repo, id, otype_from_mode(filemode))) return tree_error("failed to insert entry: invalid object specified", filename); |