Unverified Commit 0652abaa by Patrick Steinhardt Committed by GitHub

Merge pull request #4702 from tiennou/fix/coverity

Assorted Coverity fixes
parents fa401a32 89091d36
......@@ -133,8 +133,11 @@ git_blame* git_blame__alloc(
return NULL;
}
if (opts.flags & GIT_BLAME_USE_MAILMAP)
git_mailmap_from_repository(&gbr->mailmap, repo);
if (opts.flags & GIT_BLAME_USE_MAILMAP &&
git_mailmap_from_repository(&gbr->mailmap, repo) < 0) {
git_blame_free(gbr);
return NULL;
}
return gbr;
}
......
......@@ -260,7 +260,8 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
git_strmap_insert(names, entry->value, git_buf_detach(&buf), &rval);
if (rval < 0) {
giterr_set(GITERR_NOMEMORY, "error inserting submodule into hash table");
return -1;
error = -1;
goto out;
}
}
if (error == GIT_ITEROVER)
......
......@@ -279,30 +279,34 @@ static int git_smart__connect(
return error;
/* Detect capabilities */
if (git_smart__detect_caps(first, &t->caps, &symrefs) < 0) {
free_symrefs(&symrefs);
return -1;
}
if ((error = git_smart__detect_caps(first, &t->caps, &symrefs)) == 0) {
/* If the only ref in the list is capabilities^{} with OID_ZERO, remove it */
if (1 == t->refs.length && !strcmp(first->head.name, "capabilities^{}") &&
git_oid_iszero(&first->head.oid)) {
git_vector_clear(&t->refs);
git_pkt_free((git_pkt *)first);
}
/* If the only ref in the list is capabilities^{} with OID_ZERO, remove it */
if (1 == t->refs.length && !strcmp(first->head.name, "capabilities^{}") &&
git_oid_iszero(&first->head.oid)) {
git_vector_clear(&t->refs);
git_pkt_free((git_pkt *)first);
/* Keep a list of heads for _ls */
git_smart__update_heads(t, &symrefs);
} else if (error == GIT_ENOTFOUND) {
/* There was no ref packet received, or the cap list was empty */
error = 0;
} else {
giterr_set(GITERR_NET, "invalid response");
goto cleanup;
}
/* Keep a list of heads for _ls */
git_smart__update_heads(t, &symrefs);
free_symrefs(&symrefs);
if (t->rpc && git_smart__reset_stream(t, false) < 0)
return -1;
if (t->rpc && (error = git_smart__reset_stream(t, false)) < 0)
goto cleanup;
/* We're now logically connected. */
t->connected = 1;
return 0;
cleanup:
free_symrefs(&symrefs);
return error;
}
static int git_smart__ls(const git_remote_head ***out, size_t *size, git_transport *transport)
......
......@@ -136,7 +136,7 @@ int git_smart__detect_caps(git_pkt_ref *pkt, transport_smart_caps *caps, git_vec
/* No refs or capabilites, odd but not a problem */
if (pkt == NULL || pkt->capabilities == NULL)
return 0;
return GIT_ENOTFOUND;
ptr = pkt->capabilities;
while (ptr != NULL && *ptr != '\0') {
......
......@@ -93,7 +93,7 @@ static void create_index(struct checkout_index_entry *entries, size_t entries_le
if (entries[i].stage == 3 && (i == 0 || strcmp(entries[i-1].path, entries[i].path) != 0 || entries[i-1].stage != 2))
p_unlink(git_buf_cstr(&path));
git_index_remove_bypath(g_index, entries[i].path);
cl_git_pass(git_index_remove_bypath(g_index, entries[i].path));
}
for (i = 0; i < entries_len; i++) {
......@@ -133,7 +133,7 @@ static void create_conflicting_index(void)
};
create_index(checkout_index_entries, 3);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
}
static void ensure_workdir_contents(const char *path, const char *contents)
......@@ -271,7 +271,7 @@ void test_checkout_conflict__automerge(void)
};
create_index(checkout_index_entries, 3);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -303,7 +303,7 @@ void test_checkout_conflict__directory_file(void)
opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
create_index(checkout_index_entries, 12);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -344,7 +344,7 @@ void test_checkout_conflict__directory_file_with_custom_labels(void)
opts.their_label = "branch";
create_index(checkout_index_entries, 12);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -383,7 +383,7 @@ void test_checkout_conflict__link_file(void)
opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
create_index(checkout_index_entries, 12);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -410,7 +410,7 @@ void test_checkout_conflict__links(void)
opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
create_index(checkout_index_entries, 5);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -431,7 +431,7 @@ void test_checkout_conflict__add_add(void)
opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
create_index(checkout_index_entries, 2);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -472,7 +472,7 @@ void test_checkout_conflict__mode_change(void)
opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
create_index(checkout_index_entries, 18);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -604,7 +604,7 @@ void test_checkout_conflict__renames(void)
create_index(checkout_index_entries, 41);
create_index_names(checkout_name_entries, 9);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -789,7 +789,7 @@ void test_checkout_conflict__rename_keep_ours(void)
create_index(checkout_index_entries, 41);
create_index_names(checkout_name_entries, 9);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -922,7 +922,7 @@ void test_checkout_conflict__name_mangled_file_exists_in_workdir(void)
create_index(checkout_index_entries, 24);
create_index_names(checkout_name_entries, 6);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
/* Add some files on disk that conflict with the names that would be chosen
* for the files written for each side. */
......@@ -1012,7 +1012,7 @@ void test_checkout_conflict__update_only(void)
opts.checkout_strategy |= GIT_CHECKOUT_UPDATE_ONLY;
create_index(checkout_index_entries, 3);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(p_mkdir("merge-resolve/directory_file-two", 0777));
cl_git_rewritefile("merge-resolve/directory_file-two/file", CONFLICTING_OURS_FILE);
......@@ -1063,7 +1063,7 @@ void test_checkout_conflict__path_filters(void)
opts.paths = patharray;
create_index(checkout_index_entries, 12);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......@@ -1120,7 +1120,7 @@ void test_checkout_conflict__report_progress(void)
create_index(checkout_index_entries, 12);
git_index_write(g_index);
cl_git_pass(git_index_write(g_index));
cl_git_pass(git_checkout_index(g_repo, g_index, &opts));
......
......@@ -954,7 +954,7 @@ static void create_conflict(const char *path)
git_oid_fromstr(&entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863");
cl_git_pass(git_index_add(index, &entry));
git_index_write(index);
cl_git_pass(git_index_write(index));
git_index_free(index);
}
......@@ -1127,7 +1127,7 @@ void test_checkout_tree__removes_conflicts(void)
create_conflict("other.txt");
cl_git_mkfile("testrepo/other.txt", "This is another conflict file.\n");
git_index_write(index);
cl_git_pass(git_index_write(index));
cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts));
......@@ -1172,7 +1172,7 @@ void test_checkout_tree__removes_conflicts_only_by_pathscope(void)
create_conflict("other.txt");
cl_git_mkfile("testrepo/other.txt", "This is another conflict file.\n");
git_index_write(index);
cl_git_pass(git_index_write(index));
cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts));
......
......@@ -104,8 +104,8 @@ static void commit_and_tag(
cl_git_append2file("describe/file", "\n");
git_index_add_bypath(index, "describe/file");
git_index_write(index);
cl_git_pass(git_index_add_bypath(index, "file"));
cl_git_pass(git_index_write(index));
*time += 10;
cl_repo_commit_from_index(&commit_id, repo, NULL, *time, commit_msg);
......
......@@ -1910,7 +1910,7 @@ void test_diff_workdir__binary_detection(void)
cl_git_write2file(
b.ptr, data[i].ptr, data[i].size, O_WRONLY|O_TRUNC, 0664);
}
git_index_write(idx);
cl_git_pass(git_index_write(idx));
cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, NULL, NULL));
......@@ -1938,7 +1938,7 @@ void test_diff_workdir__binary_detection(void)
cl_git_write2file(b.ptr, "baseline\n", 9, O_WRONLY|O_TRUNC, 0664);
}
git_index_write(idx);
cl_git_pass(git_index_write(idx));
cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, NULL, NULL));
......
......@@ -86,7 +86,7 @@ void test_mailmap_parsing__windows_string(void)
/* Parse with windows-style line endings */
git_buf_attach_notowned(&unixbuf, string_mailmap, strlen(string_mailmap));
git_buf_text_lf_to_crlf(&winbuf, &unixbuf);
cl_git_pass(git_buf_text_lf_to_crlf(&winbuf, &unixbuf));
cl_git_pass(git_mailmap_from_buffer(&g_mailmap, winbuf.ptr, winbuf.size));
git_buf_dispose(&winbuf);
......
......@@ -337,7 +337,7 @@ void test_merge_workdir_dirty__identical_staged_files_allowed(void)
for (i = 0, content = result_contents[i]; content[0]; content = result_contents[++i]) {
stage_content(content);
git_index_write(repo_index);
cl_git_pass(git_index_write(repo_index));
cl_git_pass(merge_branch());
}
}
......
......@@ -34,7 +34,7 @@ void test_stash_apply__initialize(void)
cl_git_pass(git_index_add_bypath(repo_index, "who"));
cl_git_pass(git_index_add_bypath(repo_index, "why"));
cl_git_pass(git_index_add_bypath(repo_index, "where"));
git_index_write(repo_index);
cl_git_pass(git_index_write(repo_index));
cl_git_rewritefile("stash/where", "....\n");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment