summaryrefslogtreecommitdiff
path: root/src/tree.c
diff options
context:
space:
mode:
authorJakob Pfender <jpfender@elegosoft.com>2011-04-11 12:38:50 +0200
committerJakob Pfender <jpfender@elegosoft.com>2011-04-11 12:38:50 +0200
commit1eb0f68ec7735bd3df8f9cb49fed232d1bbfae3d (patch)
treea649cb025892f8f3947ba4cbd0fa98ff3ae9b368 /src/tree.c
parentfd279b262df31c9a5d88db78e9e9a6de07e62979 (diff)
parentfdd0cc9e8948bb65c9a461c58e5094a3613bd975 (diff)
downloadlibgit2-1eb0f68ec7735bd3df8f9cb49fed232d1bbfae3d.tar.gz
merge branch development
Diffstat (limited to 'src/tree.c')
-rw-r--r--src/tree.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/tree.c b/src/tree.c
index 693ed1caa..64f81d780 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -150,7 +150,8 @@ static int tree_parse_buffer(git_tree *tree, const char *buffer, const char *buf
if (git_vector_insert(&tree->entries, entry) < GIT_SUCCESS)
return GIT_ENOMEM;
- entry->attr = strtol(buffer, (char **)&buffer, 8);
+ if (git__strtol32((long *)&entry->attr, buffer, &buffer, 8) < GIT_SUCCESS)
+ return GIT_EOBJCORRUPTED;
if (*buffer++ != ' ') {
error = GIT_EOBJCORRUPTED;
@@ -364,7 +365,7 @@ int git_treebuilder_insert(git_tree_entry **entry_out, git_treebuilder *bld, con
git_oid_cpy(&entry->oid, id);
entry->attr = attributes;
- if (pos != GIT_ENOTFOUND) {
+ if (pos == GIT_ENOTFOUND) {
if (git_vector_insert(&bld->entries, entry) < 0)
return GIT_ENOMEM;
}