Skip to content

Commit

Permalink
Some coverity inspired cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
arrbee committed May 13, 2014
1 parent 03fcef1 commit a37aa82
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 20 deletions.
12 changes: 6 additions & 6 deletions src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,19 +153,19 @@ int git_config_snapshot(git_config **out, git_config *in)
git_config_backend *b;

if ((error = internal->file->snapshot(&b, internal->file)) < 0)
goto on_error;
break;

if ((error = git_config_add_backend(config, b, internal->level, 0)) < 0) {
b->free(b);
goto on_error;
break;
}
}

*out = config;
return error;
if (error < 0)
git_config_free(config);
else
*out = config;

on_error:
git_config_free(config);
return error;
}

Expand Down
8 changes: 5 additions & 3 deletions src/config_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,7 @@ static int config__refresh(git_config_backend *cfg)
goto out;

reader = git_array_get(b->readers, git_array_size(b->readers) - 1);
GITERR_CHECK_ALLOC(reader);

if ((error = config_parse(values->values, b, reader, b->level, 0)) < 0)
goto out;
Expand All @@ -327,7 +328,8 @@ static int config__refresh(git_config_backend *cfg)

out:
refcounted_strmap_free(values);
git_buf_free(&reader->buffer);
if (reader)
git_buf_free(&reader->buffer);
return error;
}

Expand All @@ -344,8 +346,8 @@ static int config_refresh(git_config_backend *cfg)
&reader->buffer, reader->file_path,
&reader->file_mtime, &reader->file_size, &updated);

if (error < 0)
return (error == GIT_ENOTFOUND) ? 0 : error;
if (error < 0 && error != GIT_ENOTFOUND)
return error;

if (updated)
any_updated = 1;
Expand Down
10 changes: 5 additions & 5 deletions src/diff_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,17 +233,17 @@ static int git_diff_driver_load(
return 0;
}

drv = git__calloc(1, sizeof(git_diff_driver) + namelen + 1);
GITERR_CHECK_ALLOC(drv);
drv->type = DIFF_DRIVER_AUTO;
memcpy(drv->name, driver_name, namelen);

/* if you can't read config for repo, just use default driver */
if (git_repository_config_snapshot(&cfg, repo) < 0) {
giterr_clear();
goto done;
}

drv = git__calloc(1, sizeof(git_diff_driver) + namelen + 1);
GITERR_CHECK_ALLOC(drv);
drv->type = DIFF_DRIVER_AUTO;
memcpy(drv->name, driver_name, namelen);

if ((error = git_buf_printf(&name, "diff.%s.binary", driver_name)) < 0)
goto done;

Expand Down
14 changes: 8 additions & 6 deletions src/tag.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,20 +363,22 @@ int git_tag_create_frombuffer(git_oid *oid, git_repository *repo, const char *bu
}

/* write the buffer */
if (git_odb_open_wstream(&stream, odb, strlen(buffer), GIT_OBJ_TAG) < 0)
return -1;
if ((error = git_odb_open_wstream(
&stream, odb, strlen(buffer), GIT_OBJ_TAG)) < 0)
return error;

git_odb_stream_write(stream, buffer, strlen(buffer));
if (!(error = git_odb_stream_write(stream, buffer, strlen(buffer))))
error = git_odb_stream_finalize_write(oid, stream);

error = git_odb_stream_finalize_write(oid, stream);
git_odb_stream_free(stream);

if (error < 0) {
git_buf_free(&ref_name);
return -1;
return error;
}

error = git_reference_create(&new_ref, repo, ref_name.ptr, oid, allow_ref_overwrite, NULL, NULL);
error = git_reference_create(
&new_ref, repo, ref_name.ptr, oid, allow_ref_overwrite, NULL, NULL);

git_reference_free(new_ref);
git_buf_free(&ref_name);
Expand Down

0 comments on commit a37aa82

Please sign in to comment.