diff options
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); |