diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/blob.c | 5 | ||||
| -rw-r--r-- | src/odb.c | 2 | 
2 files changed, 5 insertions, 2 deletions
diff --git a/src/blob.c b/src/blob.c index 75eda448e..6ab58d6b2 100644 --- a/src/blob.c +++ b/src/blob.c @@ -64,7 +64,10 @@ int git_blob_create_frombuffer(git_oid *oid, git_repository *repo, const void *b  	if ((error = git_odb_open_wstream(&stream, repo->db, len, GIT_OBJ_BLOB)) < GIT_SUCCESS)  		return git__rethrow(error, "Failed to create blob"); -	stream->write(stream, buffer, len); +	if ((error = stream->write(stream, buffer, len)) < GIT_SUCCESS) { +		stream->free(stream); +		return error; +	}  	error = stream->finalize_write(oid, stream);  	stream->free(stream); @@ -170,7 +170,7 @@ static int fake_wstream__write(git_odb_stream *_stream, const char *data, size_t  {  	fake_wstream *stream = (fake_wstream *)_stream; -	if (stream->written + len >= stream->size) +	if (stream->written + len > stream->size)  		return GIT_ENOMEM;  	memcpy(stream->buffer + stream->written, data, len);  | 
