mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-29 06:20:56 +00:00
Merge pull request #1420 from KindDragon/static-code-analyzer-warnings
Several warnings detected by static code analyzer fixed
This commit is contained in:
commit
50eb8520d0
2
deps/regex/regex_internal.c
vendored
2
deps/regex/regex_internal.c
vendored
@ -32,7 +32,7 @@ static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
|
||||
|
||||
#ifdef GAWK
|
||||
#undef MAX /* safety */
|
||||
static int
|
||||
static size_t
|
||||
MAX(size_t a, size_t b)
|
||||
{
|
||||
return (a > b ? a : b);
|
||||
|
@ -176,7 +176,7 @@ int git_branch_move(
|
||||
return not_a_local_branch(git_reference_name(branch));
|
||||
|
||||
if ((error = git_buf_joinpath(&new_reference_name, GIT_REFS_HEADS_DIR, new_branch_name)) < 0 ||
|
||||
(error = git_buf_printf(&old_config_section, "branch.%s", git_reference_name(branch) + strlen(GIT_REFS_HEADS_DIR)) < 0) ||
|
||||
(error = git_buf_printf(&old_config_section, "branch.%s", git_reference_name(branch) + strlen(GIT_REFS_HEADS_DIR))) < 0 ||
|
||||
(error = git_buf_printf(&new_config_section, "branch.%s", new_branch_name)) < 0)
|
||||
goto done;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
static void clear_parents(git_commit *commit)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < commit->parent_ids.length; ++i) {
|
||||
git_oid *parent = git_vector_get(&commit->parent_ids, i);
|
||||
|
@ -36,7 +36,7 @@ static void file_internal_free(file_internal *internal)
|
||||
|
||||
static void config_free(git_config *cfg)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
file_internal *internal;
|
||||
|
||||
for(i = 0; i < cfg->files.length; ++i){
|
||||
@ -284,7 +284,7 @@ int git_config_add_backend(
|
||||
int git_config_refresh(git_config *cfg)
|
||||
{
|
||||
int error = 0;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < cfg->files.length && !error; ++i) {
|
||||
file_internal *internal = git_vector_get(&cfg->files, i);
|
||||
@ -312,7 +312,7 @@ int git_config_foreach_match(
|
||||
void *payload)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
file_internal *internal;
|
||||
git_config_backend *file;
|
||||
|
||||
|
@ -390,7 +390,7 @@ static int get_workdir_content(
|
||||
map->data = git__malloc(alloc_len);
|
||||
GITERR_CHECK_ALLOC(map->data);
|
||||
|
||||
read_len = p_readlink(path.ptr, map->data, (int)alloc_len);
|
||||
read_len = p_readlink(path.ptr, map->data, alloc_len);
|
||||
if (read_len < 0) {
|
||||
giterr_set(GITERR_OS, "Failed to read symlink '%s'", file->path);
|
||||
error = -1;
|
||||
|
@ -529,7 +529,7 @@ int git_futils_cleanupdir_r(const char *path)
|
||||
git_buf fullpath = GIT_BUF_INIT;
|
||||
futils__rmdir_data data;
|
||||
|
||||
if ((error = git_buf_put(&fullpath, path, strlen(path)) < 0))
|
||||
if ((error = git_buf_put(&fullpath, path, strlen(path))) < 0)
|
||||
goto clean_up;
|
||||
|
||||
data.base = "";
|
||||
|
@ -48,7 +48,8 @@ void git_filters_free(git_vector *filters)
|
||||
|
||||
int git_filters_apply(git_buf *dest, git_buf *source, git_vector *filters)
|
||||
{
|
||||
unsigned int i, src;
|
||||
size_t i;
|
||||
unsigned int src;
|
||||
git_buf *dbuffer[2];
|
||||
|
||||
dbuffer[0] = source;
|
||||
|
@ -317,7 +317,7 @@ void git_index_free(git_index *index)
|
||||
|
||||
void git_index_clear(git_index *index)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
assert(index);
|
||||
|
||||
@ -786,7 +786,7 @@ int git_index_remove(git_index *index, const char *path, int stage)
|
||||
if (entry != NULL)
|
||||
git_tree_cache_invalidate_path(index->tree, entry->path);
|
||||
|
||||
error = git_vector_remove(&index->entries, (unsigned int)position);
|
||||
error = git_vector_remove(&index->entries, position);
|
||||
|
||||
if (!error)
|
||||
index_entry_free(entry);
|
||||
@ -1129,7 +1129,7 @@ int git_index_reuc_remove(git_index *index, size_t position)
|
||||
git_vector_sort(&index->reuc);
|
||||
|
||||
reuc = git_vector_get(&index->reuc, position);
|
||||
error = git_vector_remove(&index->reuc, (unsigned int)position);
|
||||
error = git_vector_remove(&index->reuc, position);
|
||||
|
||||
if (!error)
|
||||
index_entry_reuc_free(reuc);
|
||||
|
@ -415,6 +415,8 @@ int git_indexer_stream_add(git_indexer_stream *idx, const void *data, size_t siz
|
||||
}
|
||||
|
||||
if (!idx->parsed_header) {
|
||||
unsigned int total_objects;
|
||||
|
||||
if ((unsigned)idx->pack->mwf.size < sizeof(hdr))
|
||||
return 0;
|
||||
|
||||
@ -427,20 +429,24 @@ int git_indexer_stream_add(git_indexer_stream *idx, const void *data, size_t siz
|
||||
|
||||
/* for now, limit to 2^32 objects */
|
||||
assert(idx->nr_objects == (size_t)((unsigned int)idx->nr_objects));
|
||||
if (idx->nr_objects == (size_t)((unsigned int)idx->nr_objects))
|
||||
total_objects = (unsigned int)idx->nr_objects;
|
||||
else
|
||||
total_objects = UINT_MAX;
|
||||
|
||||
idx->pack->idx_cache = git_oidmap_alloc();
|
||||
GITERR_CHECK_ALLOC(idx->pack->idx_cache);
|
||||
|
||||
idx->pack->has_cache = 1;
|
||||
if (git_vector_init(&idx->objects, (unsigned int)idx->nr_objects, objects_cmp) < 0)
|
||||
if (git_vector_init(&idx->objects, total_objects, objects_cmp) < 0)
|
||||
return -1;
|
||||
|
||||
if (git_vector_init(&idx->deltas, (unsigned int)(idx->nr_objects / 2), NULL) < 0)
|
||||
if (git_vector_init(&idx->deltas, total_objects / 2, NULL) < 0)
|
||||
return -1;
|
||||
|
||||
stats->received_objects = 0;
|
||||
processed = stats->indexed_objects = 0;
|
||||
stats->total_objects = (unsigned int)idx->nr_objects;
|
||||
stats->total_objects = total_objects;
|
||||
do_progress_callback(idx, stats);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ static git_mwindow_ctl mem_ctl;
|
||||
void git_mwindow_free_all(git_mwindow_file *mwf)
|
||||
{
|
||||
git_mwindow_ctl *ctl = &mem_ctl;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
if (git_mutex_lock(&git__mwindow_mutex)) {
|
||||
giterr_set(GITERR_THREAD, "unable to lock mwindow mutex");
|
||||
@ -115,7 +115,7 @@ static void git_mwindow_scan_lru(
|
||||
static int git_mwindow_close_lru(git_mwindow_file *mwf)
|
||||
{
|
||||
git_mwindow_ctl *ctl = &mem_ctl;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
git_mwindow *lru_w = NULL, *lru_l = NULL, **list = &mwf->windows;
|
||||
|
||||
/* FIXME: Does this give us any advantage? */
|
||||
@ -288,7 +288,7 @@ void git_mwindow_file_deregister(git_mwindow_file *mwf)
|
||||
{
|
||||
git_mwindow_ctl *ctl = &mem_ctl;
|
||||
git_mwindow_file *cur;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
if (git_mutex_lock(&git__mwindow_mutex))
|
||||
return;
|
||||
|
20
src/odb.c
20
src/odb.c
@ -499,7 +499,7 @@ int git_odb_open(git_odb **out, const char *objects_dir)
|
||||
|
||||
static void odb_free(git_odb *db)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < db->backends.length; ++i) {
|
||||
backend_internal *internal = git_vector_get(&db->backends, i);
|
||||
@ -527,7 +527,7 @@ void git_odb_free(git_odb *db)
|
||||
int git_odb_exists(git_odb *db, const git_oid *id)
|
||||
{
|
||||
git_odb_object *object;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
bool found = false;
|
||||
bool refreshed = false;
|
||||
|
||||
@ -577,7 +577,7 @@ int git_odb__read_header_or_object(
|
||||
git_odb_object **out, size_t *len_p, git_otype *type_p,
|
||||
git_odb *db, const git_oid *id)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = GIT_ENOTFOUND;
|
||||
git_odb_object *object;
|
||||
|
||||
@ -619,7 +619,7 @@ int git_odb__read_header_or_object(
|
||||
|
||||
int git_odb_read(git_odb_object **out, git_odb *db, const git_oid *id)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error;
|
||||
bool refreshed = false;
|
||||
git_rawobj raw;
|
||||
@ -664,7 +664,7 @@ attempt_lookup:
|
||||
int git_odb_read_prefix(
|
||||
git_odb_object **out, git_odb *db, const git_oid *short_id, size_t len)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = GIT_ENOTFOUND;
|
||||
git_oid found_full_oid = {{0}};
|
||||
git_rawobj raw;
|
||||
@ -743,7 +743,7 @@ int git_odb_foreach(git_odb *db, git_odb_foreach_cb cb, void *payload)
|
||||
int git_odb_write(
|
||||
git_oid *oid, git_odb *db, const void *data, size_t len, git_otype type)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = GIT_ERROR;
|
||||
git_odb_stream *stream;
|
||||
|
||||
@ -785,7 +785,7 @@ int git_odb_write(
|
||||
int git_odb_open_wstream(
|
||||
git_odb_stream **stream, git_odb *db, size_t size, git_otype type)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = GIT_ERROR;
|
||||
|
||||
assert(stream && db);
|
||||
@ -812,7 +812,7 @@ int git_odb_open_wstream(
|
||||
|
||||
int git_odb_open_rstream(git_odb_stream **stream, git_odb *db, const git_oid *oid)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = GIT_ERROR;
|
||||
|
||||
assert(stream && db);
|
||||
@ -833,7 +833,7 @@ int git_odb_open_rstream(git_odb_stream **stream, git_odb *db, const git_oid *oi
|
||||
|
||||
int git_odb_write_pack(struct git_odb_writepack **out, git_odb *db, git_transfer_progress_callback progress_cb, void *progress_payload)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = GIT_ERROR;
|
||||
|
||||
assert(out && db);
|
||||
@ -864,7 +864,7 @@ void *git_odb_backend_malloc(git_odb_backend *backend, size_t len)
|
||||
|
||||
int git_odb_refresh(struct git_odb *db)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
assert(db);
|
||||
|
||||
for (i = 0; i < db->backends.length; ++i) {
|
||||
|
@ -195,7 +195,7 @@ static int packfile_load__cb(void *_data, git_buf *path)
|
||||
struct pack_backend *backend = (struct pack_backend *)_data;
|
||||
struct git_pack_file *pack;
|
||||
int error;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
if (git__suffixcmp(path->ptr, ".idx") != 0)
|
||||
return 0; /* not an index */
|
||||
@ -222,7 +222,7 @@ static int pack_entry_find_inner(
|
||||
const git_oid *oid,
|
||||
struct git_pack_file *last_found)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
if (last_found &&
|
||||
git_pack_entry_find(e, last_found, oid, GIT_OID_HEXSZ) == 0)
|
||||
@ -266,7 +266,7 @@ static unsigned pack_entry_find_prefix_inner(
|
||||
struct git_pack_file *last_found)
|
||||
{
|
||||
int error;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
unsigned found = 0;
|
||||
|
||||
if (last_found) {
|
||||
@ -510,7 +510,7 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
|
||||
static void pack_backend__free(git_odb_backend *_backend)
|
||||
{
|
||||
struct pack_backend *backend;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
assert(_backend);
|
||||
|
||||
|
@ -769,7 +769,7 @@ static int packed_remove_loose(
|
||||
refdb_fs_backend *backend,
|
||||
git_vector *packing_list)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
git_buf full_path = GIT_BUF_INIT;
|
||||
int failed = 0;
|
||||
|
||||
@ -811,7 +811,7 @@ static int packed_remove_loose(
|
||||
static int packed_write(refdb_fs_backend *backend)
|
||||
{
|
||||
git_filebuf pack_file = GIT_FILEBUF_INIT;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
git_buf pack_file_path = GIT_BUF_INIT;
|
||||
git_vector packing_list;
|
||||
unsigned int total_refs;
|
||||
|
@ -163,7 +163,7 @@ fail:
|
||||
|
||||
void git_reflog_free(git_reflog *reflog)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
git_reflog_entry *entry;
|
||||
|
||||
if (reflog == NULL)
|
||||
|
17
src/refs.c
17
src/refs.c
@ -440,6 +440,7 @@ int git_reference_rename(
|
||||
git_oid *oid;
|
||||
const char *symbolic;
|
||||
int error = 0;
|
||||
int reference_has_log;
|
||||
|
||||
*out = NULL;
|
||||
|
||||
@ -465,11 +466,13 @@ int git_reference_rename(
|
||||
return -1;
|
||||
|
||||
/* Check if we have to update HEAD. */
|
||||
if ((should_head_be_updated = git_branch_is_head(ref)) < 0)
|
||||
if ((error = git_branch_is_head(ref)) < 0)
|
||||
goto on_error;
|
||||
|
||||
should_head_be_updated = (error > 0);
|
||||
|
||||
/* Now delete the old ref and save the new one. */
|
||||
if (git_refdb_delete(ref->db, ref) < 0)
|
||||
if ((error = git_refdb_delete(ref->db, ref)) < 0)
|
||||
goto on_error;
|
||||
|
||||
/* Save the new reference. */
|
||||
@ -477,14 +480,18 @@ int git_reference_rename(
|
||||
goto rollback;
|
||||
|
||||
/* Update HEAD it was poiting to the reference being renamed. */
|
||||
if (should_head_be_updated && git_repository_set_head(ref->db->repo, new_name) < 0) {
|
||||
if (should_head_be_updated && (error = git_repository_set_head(ref->db->repo, new_name)) < 0) {
|
||||
giterr_set(GITERR_REFERENCE, "Failed to update HEAD after renaming reference");
|
||||
goto on_error;
|
||||
}
|
||||
|
||||
/* Rename the reflog file, if it exists. */
|
||||
if (git_reference_has_log(ref) &&
|
||||
(error = git_reflog_rename(ref, new_name)) < 0)
|
||||
reference_has_log = git_reference_has_log(ref);
|
||||
if (reference_has_log < 0) {
|
||||
error = reference_has_log;
|
||||
goto on_error;
|
||||
}
|
||||
if (reference_has_log && (error = git_reflog_rename(ref, new_name)) < 0)
|
||||
goto on_error;
|
||||
|
||||
*out = result;
|
||||
|
@ -1254,7 +1254,7 @@ static int rename_fetch_refspecs(
|
||||
goto cleanup;
|
||||
|
||||
/* Is it an in-memory remote? */
|
||||
if (remote->name == '\0') {
|
||||
if (!remote->name) {
|
||||
error = (callback(git_buf_cstr(&serialized), payload) < 0) ? GIT_EUSER : 0;
|
||||
goto cleanup;
|
||||
}
|
||||
|
@ -511,8 +511,8 @@ static int walk_and_search(git_object **out, git_revwalk *walk, regex_t *regex)
|
||||
|
||||
while (!(error = git_revwalk_next(&oid, walk))) {
|
||||
|
||||
if ((error = git_object_lookup(&obj, git_revwalk_repository(walk), &oid, GIT_OBJ_COMMIT) < 0) &&
|
||||
(error != GIT_ENOTFOUND))
|
||||
error = git_object_lookup(&obj, git_revwalk_repository(walk), &oid, GIT_OBJ_COMMIT);
|
||||
if ((error < 0) && (error != GIT_ENOTFOUND))
|
||||
return -1;
|
||||
|
||||
if (!regexec(regex, git_commit_message((git_commit*)obj), 0, NULL, 0)) {
|
||||
@ -635,7 +635,7 @@ static int extract_how_many(int *n, const char *spec, size_t *pos)
|
||||
} while (spec[(*pos)] == kind && kind == '~');
|
||||
|
||||
if (git__isdigit(spec[*pos])) {
|
||||
if ((git__strtol32(&parsed, spec + *pos, &end_ptr, 10) < 0) < 0)
|
||||
if (git__strtol32(&parsed, spec + *pos, &end_ptr, 10) < 0)
|
||||
return GIT_EINVALIDSPEC;
|
||||
|
||||
accumulated += (parsed - 1);
|
||||
|
@ -1497,7 +1497,7 @@ static int submodule_wd_status(unsigned int *status, git_submodule *sm)
|
||||
if (untracked > 0)
|
||||
*status |= GIT_SUBMODULE_STATUS_WD_UNTRACKED;
|
||||
|
||||
if ((git_diff_num_deltas(diff) - untracked) > 0)
|
||||
if (git_diff_num_deltas(diff) != untracked)
|
||||
*status |= GIT_SUBMODULE_STATUS_WD_WD_MODIFIED;
|
||||
|
||||
git_diff_list_free(diff);
|
||||
|
@ -124,7 +124,7 @@ static int store_refs(transport_local *t)
|
||||
assert(t);
|
||||
|
||||
if (git_reference_list(&ref_names, t->repo, GIT_REF_LISTALL) < 0 ||
|
||||
git_vector_init(&t->refs, (unsigned int)ref_names.count, NULL) < 0)
|
||||
git_vector_init(&t->refs, ref_names.count, NULL) < 0)
|
||||
goto on_error;
|
||||
|
||||
/* Sort the references first */
|
||||
|
@ -24,7 +24,7 @@ static int git_smart__recv_cb(gitno_buffer *buf)
|
||||
buf->offset += bytes_read;
|
||||
|
||||
if (t->packetsize_cb)
|
||||
t->packetsize_cb((int)bytes_read, t->packetsize_payload);
|
||||
t->packetsize_cb(bytes_read, t->packetsize_payload);
|
||||
|
||||
return (int)(buf->offset - old_len);
|
||||
}
|
||||
|
@ -454,7 +454,7 @@ int git_smart__download_pack(
|
||||
|
||||
/* We might have something in the buffer already from negotiate_fetch */
|
||||
if (t->buffer.offset > 0)
|
||||
t->packetsize_cb((int)t->buffer.offset, t->packetsize_payload);
|
||||
t->packetsize_cb(t->buffer.offset, t->packetsize_payload);
|
||||
}
|
||||
|
||||
if ((error = git_repository_odb__weakptr(&odb, repo)) < 0 ||
|
||||
|
Loading…
Reference in New Issue
Block a user