diff options
| author | Carlos Martín Nieto <cmn@elego.de> | 2011-04-11 17:41:21 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <cmn@elego.de> | 2011-04-11 17:43:56 +0200 |
| commit | 55c197cdd37b34c7b4877bc0434c297075e11222 (patch) | |
| tree | 05dcc126d117b1753e07f0a173cf9498a38ac4f9 /src/tree.c | |
| parent | b075b9910c56c356d53439fd34486a905146211a (diff) | |
| parent | fdd0cc9e8948bb65c9a461c58e5094a3613bd975 (diff) | |
| download | libgit2-55c197cdd37b34c7b4877bc0434c297075e11222.tar.gz | |
Merge upstream/development
Diffstat (limited to 'src/tree.c')
| -rw-r--r-- | src/tree.c | 5 |
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; } |
