coccinelle: make use of the "type" FREE_AND_NULL() rule

Apply the result of the just-added coccinelle rule. This manually
excludes a few occurrences, mostly things that resulted in many
FREE_AND_NULL() on one line, that'll be manually fixed in a subsequent
change.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2017-06-15 23:15:46 +00:00 коммит произвёл Junio C Hamano
Родитель cf9f49ea48
Коммит 6a83d90207
37 изменённых файлов: 71 добавлений и 142 удалений

Просмотреть файл

@ -47,8 +47,7 @@ int split_cmdline(char *cmdline, const char ***argv)
src++;
c = cmdline[src];
if (!c) {
free(*argv);
*argv = NULL;
FREE_AND_NULL(*argv);
return -SPLIT_CMDLINE_BAD_ENDING;
}
}
@ -60,8 +59,7 @@ int split_cmdline(char *cmdline, const char ***argv)
cmdline[dst] = 0;
if (quoted) {
free(*argv);
*argv = NULL;
FREE_AND_NULL(*argv);
return -SPLIT_CMDLINE_UNCLOSED_QUOTE;
}

Просмотреть файл

@ -3705,8 +3705,7 @@ static int check_preimage(struct apply_state *state,
is_new:
patch->is_new = 1;
patch->is_delete = 0;
free(patch->old_name);
patch->old_name = NULL;
FREE_AND_NULL(patch->old_name);
return 0;
}

6
attr.c
Просмотреть файл

@ -638,13 +638,11 @@ void attr_check_reset(struct attr_check *check)
void attr_check_clear(struct attr_check *check)
{
free(check->items);
check->items = NULL;
FREE_AND_NULL(check->items);
check->alloc = 0;
check->nr = 0;
free(check->all_attrs);
check->all_attrs = NULL;
FREE_AND_NULL(check->all_attrs);
check->all_attrs_nr = 0;
drop_attr_stack(&check->stack);

Просмотреть файл

@ -24,8 +24,7 @@ static int find_tracked_branch(struct remote *remote, void *priv)
} else {
free(tracking->spec.src);
if (tracking->src) {
free(tracking->src);
tracking->src = NULL;
FREE_AND_NULL(tracking->src);
}
}
tracking->spec.src = NULL;

Просмотреть файл

@ -483,8 +483,7 @@ static int run_applypatch_msg_hook(struct am_state *state)
ret = run_hook_le(NULL, "applypatch-msg", am_path(state, "final-commit"), NULL);
if (!ret) {
free(state->msg);
state->msg = NULL;
FREE_AND_NULL(state->msg);
if (read_commit_msg(state) < 0)
die(_("'%s' was deleted by the applypatch-msg hook"),
am_path(state, "final-commit"));

Просмотреть файл

@ -837,8 +837,7 @@ static void interactive_main_loop(void)
int ret;
ret = menus[*chosen].fn();
if (ret != MENU_RETURN_NO_LOOP) {
free(chosen);
chosen = NULL;
FREE_AND_NULL(chosen);
if (!del_list.nr) {
clean_print_color(CLEAN_COLOR_ERROR);
printf_ln(_("No more files to clean, exiting."));
@ -851,8 +850,7 @@ static void interactive_main_loop(void)
quit_cmd();
}
free(chosen);
chosen = NULL;
FREE_AND_NULL(chosen);
break;
}
}

Просмотреть файл

@ -214,8 +214,7 @@ static int get_value(const char *key_, const char *regex_)
key_regexp = (regex_t*)xmalloc(sizeof(regex_t));
if (regcomp(key_regexp, key, REG_EXTENDED)) {
error("invalid key pattern: %s", key_);
free(key_regexp);
key_regexp = NULL;
FREE_AND_NULL(key_regexp);
ret = CONFIG_INVALID_PATTERN;
goto free_strings;
}
@ -235,8 +234,7 @@ static int get_value(const char *key_, const char *regex_)
regexp = (regex_t*)xmalloc(sizeof(regex_t));
if (regcomp(regexp, regex_, REG_EXTENDED)) {
error("invalid pattern: %s", regex_);
free(regexp);
regexp = NULL;
FREE_AND_NULL(regexp);
ret = CONFIG_INVALID_PATTERN;
goto free_strings;
}

Просмотреть файл

@ -388,8 +388,7 @@ static struct base_data *alloc_base_data(void)
static void free_base_data(struct base_data *c)
{
if (c->data) {
free(c->data);
c->data = NULL;
FREE_AND_NULL(c->data);
get_thread_data()->base_cache_used -= c->size;
}
}
@ -605,8 +604,7 @@ static void *unpack_data(struct object_entry *obj,
git_inflate_end(&stream);
free(inbuf);
if (consume) {
free(data);
data = NULL;
FREE_AND_NULL(data);
}
return data;
}

Просмотреть файл

@ -264,8 +264,7 @@ static unsigned long write_no_reuse_object(struct sha1file *f, struct object_ent
* make sure no cached delta data remains from a
* previous attempt before a pack split occurred.
*/
free(entry->delta_data);
entry->delta_data = NULL;
FREE_AND_NULL(entry->delta_data);
entry->z_delta_size = 0;
} else if (entry->delta_data) {
size = entry->delta_size;
@ -1375,12 +1374,10 @@ static void cleanup_preferred_base(void)
if (!pbase_tree_cache[i])
continue;
free(pbase_tree_cache[i]->tree_data);
free(pbase_tree_cache[i]);
pbase_tree_cache[i] = NULL;
FREE_AND_NULL(pbase_tree_cache[i]);
}
free(done_pbase_paths);
done_pbase_paths = NULL;
FREE_AND_NULL(done_pbase_paths);
done_pbase_paths_num = done_pbase_paths_alloc = 0;
}
@ -1970,8 +1967,7 @@ static unsigned long free_unpacked(struct unpacked *n)
n->index = NULL;
if (n->data) {
freed_mem += n->entry->size;
free(n->data);
n->data = NULL;
FREE_AND_NULL(n->data);
}
n->entry = NULL;
n->depth = 0;

Просмотреть файл

@ -112,8 +112,7 @@ static void *get_data(unsigned long size)
break;
if (ret != Z_OK) {
error("inflate returned %d", ret);
free(buf);
buf = NULL;
FREE_AND_NULL(buf);
if (!recover)
exit(1);
has_errors = 1;

Просмотреть файл

@ -287,8 +287,7 @@ void free_commit_buffer(struct commit *commit)
{
struct commit_buffer *v = buffer_slab_peek(&buffer_slab, commit);
if (v) {
free(v->buffer);
v->buffer = NULL;
FREE_AND_NULL(v->buffer);
v->size = 0;
}
}

Просмотреть файл

@ -395,8 +395,7 @@ static int git_config_parse_key_1(const char *key, char **store_key, int *basele
out_free_ret_1:
if (store_key) {
free(*store_key);
*store_key = NULL;
FREE_AND_NULL(*store_key);
}
return -CONFIG_INVALID_KEY;
}

Просмотреть файл

@ -93,8 +93,7 @@ static void credential_apply_config(struct credential *c)
c->configured = 1;
if (!c->use_http_path && proto_is_http(c->protocol)) {
free(c->path);
c->path = NULL;
FREE_AND_NULL(c->path);
}
}

Просмотреть файл

@ -179,8 +179,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
free(dpath);
continue;
}
free(dpath);
dpath = NULL;
FREE_AND_NULL(dpath);
/*
* Show the diff for the 'ce' if we found the one

6
diff.c
Просмотреть файл

@ -1218,8 +1218,7 @@ static void free_diff_words_data(struct emit_callback *ecbdata)
regfree(ecbdata->diff_words->word_regex);
free(ecbdata->diff_words->word_regex);
}
free(ecbdata->diff_words);
ecbdata->diff_words = NULL;
FREE_AND_NULL(ecbdata->diff_words);
}
}
@ -2951,8 +2950,7 @@ void diff_free_filespec_blob(struct diff_filespec *s)
void diff_free_filespec_data(struct diff_filespec *s)
{
diff_free_filespec_blob(s);
free(s->cnt_data);
s->cnt_data = NULL;
FREE_AND_NULL(s->cnt_data);
}
static void prep_temp_blob(const char *path, struct diff_tempfile *temp,

Просмотреть файл

@ -667,11 +667,9 @@ void diffcore_rename(struct diff_options *options)
for (i = 0; i < rename_dst_nr; i++)
free_filespec(rename_dst[i].two);
free(rename_dst);
rename_dst = NULL;
FREE_AND_NULL(rename_dst);
rename_dst_nr = rename_dst_alloc = 0;
free(rename_src);
rename_src = NULL;
FREE_AND_NULL(rename_src);
rename_src_nr = rename_src_alloc = 0;
return;
}

9
dir.c
Просмотреть файл

@ -2117,8 +2117,7 @@ int read_directory(struct dir_struct *dir, struct index_state *istate,
for (i = j = 0; j < dir->nr; j++) {
if (i &&
check_dir_entry_contains(dir->entries[i - 1], dir->entries[j])) {
free(dir->entries[j]);
dir->entries[j] = NULL;
FREE_AND_NULL(dir->entries[j]);
} else {
dir->entries[i++] = dir->entries[j];
}
@ -2144,8 +2143,7 @@ int read_directory(struct dir_struct *dir, struct index_state *istate,
dir->untracked->dir_invalidated))
istate->cache_changed |= UNTRACKED_CHANGED;
if (dir->untracked != istate->untracked) {
free(dir->untracked);
dir->untracked = NULL;
FREE_AND_NULL(dir->untracked);
}
}
return dir->nr;
@ -2488,8 +2486,7 @@ void write_untracked_extension(struct strbuf *out, struct untracked_cache *untra
strbuf_addbuf(out, &untracked->ident);
strbuf_add(out, ouc, ouc_size(len));
free(ouc);
ouc = NULL;
FREE_AND_NULL(ouc);
if (!untracked->root) {
varint_len = encode_varint(0, varbuf);

Просмотреть файл

@ -1063,8 +1063,7 @@ discard_pack:
close(pack_data->pack_fd);
unlink_or_warn(pack_data->pack_name);
}
free(pack_data);
pack_data = NULL;
FREE_AND_NULL(pack_data);
running = 0;
/* We can't carry a delta across packfiles. */
@ -1149,8 +1148,7 @@ static int store_object(
/* We cannot carry a delta into the new pack. */
if (delta) {
free(delta);
delta = NULL;
FREE_AND_NULL(delta);
git_deflate_init(&s, pack_compression_level);
s.next_in = (void *)dat->buf;

3
grep.c
Просмотреть файл

@ -1778,8 +1778,7 @@ void grep_source_clear_data(struct grep_source *gs)
case GREP_SOURCE_FILE:
case GREP_SOURCE_SHA1:
case GREP_SOURCE_SUBMODULE:
free(gs->buf);
gs->buf = NULL;
FREE_AND_NULL(gs->buf);
gs->size = 0;
break;
case GREP_SOURCE_BUF:

Просмотреть файл

@ -291,8 +291,7 @@ static void start_mkcol(struct transfer_request *request)
request->state = RUN_MKCOL;
} else {
request->state = ABORTED;
free(request->url);
request->url = NULL;
FREE_AND_NULL(request->url);
}
}
#endif
@ -409,8 +408,7 @@ static void start_put(struct transfer_request *request)
request->state = RUN_PUT;
} else {
request->state = ABORTED;
free(request->url);
request->url = NULL;
FREE_AND_NULL(request->url);
}
}
@ -432,8 +430,7 @@ static void start_move(struct transfer_request *request)
request->state = RUN_MOVE;
} else {
request->state = ABORTED;
free(request->url);
request->url = NULL;
FREE_AND_NULL(request->url);
}
}
@ -526,8 +523,7 @@ static void finish_request(struct transfer_request *request)
/* URL is reused for MOVE after PUT */
if (request->state != RUN_PUT) {
free(request->url);
request->url = NULL;
FREE_AND_NULL(request->url);
}
if (request->state == RUN_MKCOL) {
@ -803,8 +799,7 @@ xml_start_tag(void *userData, const char *name, const char **atts)
}
xsnprintf(ctx->name + old_namelen, ctx->len - old_namelen, ".%s", c);
free(ctx->cdata);
ctx->cdata = NULL;
FREE_AND_NULL(ctx->cdata);
ctx->userFunc(ctx, 0);
}
@ -932,8 +927,7 @@ static struct remote_lock *lock_remote(const char *path, long timeout)
free(lock->token);
free(lock->owner);
free(url);
free(lock);
lock = NULL;
FREE_AND_NULL(lock);
} else {
lock->url = url;
lock->start_time = time(NULL);
@ -1105,8 +1099,7 @@ static void handle_remote_ls_ctx(struct xml_ctx *ctx, int tag_closed)
ls->dentry_flags |= IS_DIR;
}
} else if (!strcmp(ctx->name, DAV_PROPFIND_RESP)) {
free(ls->dentry_name);
ls->dentry_name = NULL;
FREE_AND_NULL(ls->dentry_name);
ls->dentry_flags = 0;
}
}
@ -1547,8 +1540,7 @@ static void fetch_symref(const char *path, char **symref, struct object_id *oid)
curl_errorstr);
free(url);
free(*symref);
*symref = NULL;
FREE_AND_NULL(*symref);
oidclr(oid);
if (buffer.len == 0)

15
http.c
Просмотреть файл

@ -1026,8 +1026,7 @@ void http_cleanup(void)
if (proxy_auth.password) {
memset(proxy_auth.password, 0, strlen(proxy_auth.password));
free(proxy_auth.password);
proxy_auth.password = NULL;
FREE_AND_NULL(proxy_auth.password);
}
free((void *)curl_proxyuserpwd);
@ -1038,13 +1037,11 @@ void http_cleanup(void)
if (cert_auth.password != NULL) {
memset(cert_auth.password, 0, strlen(cert_auth.password));
free(cert_auth.password);
cert_auth.password = NULL;
FREE_AND_NULL(cert_auth.password);
}
ssl_cert_password_required = 0;
free(cached_accept_language);
cached_accept_language = NULL;
FREE_AND_NULL(cached_accept_language);
}
struct active_request_slot *get_active_slot(void)
@ -1896,8 +1893,7 @@ static char *fetch_pack_index(unsigned char *sha1, const char *base_url)
if (http_get_file(url, tmp, NULL) != HTTP_OK) {
error("Unable to get pack index %s", url);
free(tmp);
tmp = NULL;
FREE_AND_NULL(tmp);
}
free(url);
@ -2328,8 +2324,7 @@ void release_http_object_request(struct http_object_request *freq)
freq->localfile = -1;
}
if (freq->url != NULL) {
free(freq->url);
freq->url = NULL;
FREE_AND_NULL(freq->url);
}
if (freq->slot != NULL) {
freq->slot->callback_func = NULL;

Просмотреть файл

@ -776,8 +776,7 @@ static int get_cmd_result(struct imap_store *ctx, struct imap_cmd *tcmd)
offsetof(struct imap_cmd, next));
if (cmdp->cb.data) {
n = socket_write(&imap->buf.sock, cmdp->cb.data, cmdp->cb.dlen);
free(cmdp->cb.data);
cmdp->cb.data = NULL;
FREE_AND_NULL(cmdp->cb.data);
if (n != (int)cmdp->cb.dlen)
return RESP_BAD;
} else if (cmdp->cb.cont) {

Просмотреть файл

@ -610,8 +610,7 @@ parse_lines(struct commit *commit, const char *prefix, struct string_list *args)
line_log_data_insert(&ranges, full_name, begin, end);
free_filespec(spec);
free(ends);
ends = NULL;
FREE_AND_NULL(ends);
}
for (p = ranges; p; p = p->next)

Просмотреть файл

@ -919,8 +919,7 @@ again:
/* we hit an end boundary */
/* pop the current boundary off the stack */
strbuf_release(*(mi->content_top));
free(*(mi->content_top));
*(mi->content_top) = NULL;
FREE_AND_NULL(*(mi->content_top));
/* technically won't happen as is_multipart_boundary()
will fail first. But just in case..

Просмотреть файл

@ -377,8 +377,7 @@ void object_array_clear(struct object_array *array)
int i;
for (i = 0; i < array->nr; i++)
object_array_release_entry(&array->objects[i]);
free(array->objects);
array->objects = NULL;
FREE_AND_NULL(array->objects);
array->nr = array->alloc = 0;
}

Просмотреть файл

@ -662,7 +662,6 @@ void clear_pathspec(struct pathspec *pathspec)
attr_check_free(pathspec->items[i].attr_check);
}
free(pathspec->items);
pathspec->items = NULL;
FREE_AND_NULL(pathspec->items);
pathspec->nr = 0;
}

Просмотреть файл

@ -1888,8 +1888,7 @@ int discard_index(struct index_state *istate)
free_name_hash(istate);
cache_tree_free(&(istate->cache_tree));
istate->initialized = 0;
free(istate->cache);
istate->cache = NULL;
FREE_AND_NULL(istate->cache);
istate->cache_alloc = 0;
discard_split_index(istate);
free_untracked_cache(istate->untracked);
@ -2603,8 +2602,7 @@ void *read_blob_data_from_index(const struct index_state *istate,
void stat_validity_clear(struct stat_validity *sv)
{
free(sv->sd);
sv->sd = NULL;
FREE_AND_NULL(sv->sd);
}
int stat_validity_check(struct stat_validity *sv, const char *path)

Просмотреть файл

@ -1891,8 +1891,7 @@ void ref_array_clear(struct ref_array *array)
for (i = 0; i < array->nr; i++)
free_array_item(array->items[i]);
free(array->items);
array->items = NULL;
FREE_AND_NULL(array->items);
array->nr = array->alloc = 0;
}

Просмотреть файл

@ -2944,8 +2944,7 @@ static int files_transaction_prepare(struct ref_store *ref_store,
head_oid.hash, &head_type);
if (head_ref && !(head_type & REF_ISSYMREF)) {
free(head_ref);
head_ref = NULL;
FREE_AND_NULL(head_ref);
}
/*

Просмотреть файл

@ -66,8 +66,7 @@ static char *read_ref_note(const unsigned char sha1[20])
else if (!msglen || type != OBJ_BLOB) {
error("Note contains unusable content. "
"Is something else using this notes tree? %s", notes_ref);
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
free_notes(NULL);
return msg;

Просмотреть файл

@ -1211,8 +1211,7 @@ struct todo_list {
static void todo_list_release(struct todo_list *todo_list)
{
strbuf_release(&todo_list->buf);
free(todo_list->items);
todo_list->items = NULL;
FREE_AND_NULL(todo_list->items);
todo_list->nr = todo_list->alloc = 0;
}

Просмотреть файл

@ -35,8 +35,7 @@ int oid_array_lookup(struct oid_array *array, const struct object_id *oid)
void oid_array_clear(struct oid_array *array)
{
free(array->oid);
array->oid = NULL;
FREE_AND_NULL(array->oid);
array->nr = 0;
array->alloc = 0;
array->sorted = 0;

Просмотреть файл

@ -610,8 +610,7 @@ char *compute_alternate_path(const char *path, struct strbuf *err)
out:
if (seen_error) {
free(ref_git);
ref_git = NULL;
FREE_AND_NULL(ref_git);
}
return ref_git;

Просмотреть файл

@ -242,8 +242,7 @@ static int disconnect_helper(struct transport *transport)
close(data->helper->out);
fclose(data->out);
res = finish_command(data->helper);
free(data->helper);
data->helper = NULL;
FREE_AND_NULL(data->helper);
}
return res;
}
@ -711,43 +710,35 @@ static int push_update_ref_status(struct strbuf *buf,
if (!strcmp(msg, "no match")) {
status = REF_STATUS_NONE;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "up to date")) {
status = REF_STATUS_UPTODATE;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "non-fast forward")) {
status = REF_STATUS_REJECT_NONFASTFORWARD;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "already exists")) {
status = REF_STATUS_REJECT_ALREADY_EXISTS;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "fetch first")) {
status = REF_STATUS_REJECT_FETCH_FIRST;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "needs force")) {
status = REF_STATUS_REJECT_NEEDS_FORCE;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "stale info")) {
status = REF_STATUS_REJECT_STALE;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
else if (!strcmp(msg, "forced update")) {
forced = 1;
free(msg);
msg = NULL;
FREE_AND_NULL(msg);
}
}

Просмотреть файл

@ -1145,8 +1145,7 @@ void transport_unlock_pack(struct transport *transport)
{
if (transport->pack_lockfile) {
unlink_or_warn(transport->pack_lockfile);
free(transport->pack_lockfile);
transport->pack_lockfile = NULL;
FREE_AND_NULL(transport->pack_lockfile);
}
}

Просмотреть файл

@ -140,8 +140,7 @@ static struct combine_diff_path *path_appendnew(struct combine_diff_path *last,
/* if last->next is !NULL - it is a pre-allocated memory, we can reuse */
p = last->next;
if (p && (alloclen > (intptr_t)p->next)) {
free(p);
p = NULL;
FREE_AND_NULL(p);
}
if (!p) {
@ -559,8 +558,7 @@ struct combine_diff_path *diff_tree_paths(
* (see path_appendnew() for details about why)
*/
if (p->next) {
free(p->next);
p->next = NULL;
FREE_AND_NULL(p->next);
}
return p;

3
tree.c
Просмотреть файл

@ -226,8 +226,7 @@ int parse_tree_gently(struct tree *item, int quiet_on_missing)
void free_tree_buffer(struct tree *tree)
{
free(tree->buffer);
tree->buffer = NULL;
FREE_AND_NULL(tree->buffer);
tree->size = 0;
tree->object.parsed = 0;
}