sha1_file: release strbuf on error return in index_path()
strbuf_readlink() already frees the buffer for us on error. Clean up if write_sha1_file() fails as well instead of returning early. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
872d651f52
commit
ea8e029785
@ -1820,6 +1820,7 @@ int index_path(struct object_id *oid, const char *path, struct stat *st, unsigne
|
||||
{
|
||||
int fd;
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
int rc = 0;
|
||||
|
||||
switch (st->st_mode & S_IFMT) {
|
||||
case S_IFREG:
|
||||
@ -1836,8 +1837,7 @@ int index_path(struct object_id *oid, const char *path, struct stat *st, unsigne
|
||||
if (!(flags & HASH_WRITE_OBJECT))
|
||||
hash_sha1_file(sb.buf, sb.len, blob_type, oid->hash);
|
||||
else if (write_sha1_file(sb.buf, sb.len, blob_type, oid->hash))
|
||||
return error("%s: failed to insert into database",
|
||||
path);
|
||||
rc = error("%s: failed to insert into database", path);
|
||||
strbuf_release(&sb);
|
||||
break;
|
||||
case S_IFDIR:
|
||||
@ -1845,7 +1845,7 @@ int index_path(struct object_id *oid, const char *path, struct stat *st, unsigne
|
||||
default:
|
||||
return error("%s: unsupported file type", path);
|
||||
}
|
||||
return 0;
|
||||
return rc;
|
||||
}
|
||||
|
||||
int read_pack_header(int fd, struct pack_header *header)
|
||||
|
Loading…
Reference in New Issue
Block a user