mirror of
https://github.com/moparisthebest/pacman
synced 2024-08-13 17:03:46 -04:00
Fix issues with unintialized variable value usage
Detected by clang scan-build static code analyzer. * Don't attempt to free an uninitialized gpgme key variable * Initialize answer variable before asking frontend a question * Pass by reference instead of value if uninitialized fields are possible in download signal handler code * Ensure we never call strlen() on NULL payload->remote_name value Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
ca090e10d2
commit
ded66fbb62
@ -337,9 +337,9 @@ static void mask_signal(int signal, void (*handler)(int),
|
|||||||
sigaction(signal, &newaction, NULL);
|
sigaction(signal, &newaction, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unmask_signal(int signal, struct sigaction sa)
|
static void unmask_signal(int signal, struct sigaction *sa)
|
||||||
{
|
{
|
||||||
sigaction(signal, &sa, NULL);
|
sigaction(signal, sa, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static FILE *create_tempfile(struct dload_payload *payload, const char *localpath)
|
static FILE *create_tempfile(struct dload_payload *payload, const char *localpath)
|
||||||
@ -409,7 +409,8 @@ static int curl_download_internal(struct dload_payload *payload,
|
|||||||
RET_ERR(handle, ALPM_ERR_SERVER_BAD_URL, -1);
|
RET_ERR(handle, ALPM_ERR_SERVER_BAD_URL, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(strlen(payload->remote_name) > 0 && strcmp(payload->remote_name, ".sig") != 0) {
|
if(payload->remote_name && strlen(payload->remote_name) > 0 &&
|
||||||
|
strcmp(payload->remote_name, ".sig") != 0) {
|
||||||
payload->destfile_name = get_fullpath(localpath, payload->remote_name, "");
|
payload->destfile_name = get_fullpath(localpath, payload->remote_name, "");
|
||||||
payload->tempfile_name = get_fullpath(localpath, payload->remote_name, ".part");
|
payload->tempfile_name = get_fullpath(localpath, payload->remote_name, ".part");
|
||||||
if(!payload->destfile_name || !payload->tempfile_name) {
|
if(!payload->destfile_name || !payload->tempfile_name) {
|
||||||
@ -582,8 +583,8 @@ cleanup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* restore the old signal handlers */
|
/* restore the old signal handlers */
|
||||||
unmask_signal(SIGINT, orig_sig_int);
|
unmask_signal(SIGINT, &orig_sig_int);
|
||||||
unmask_signal(SIGPIPE, orig_sig_pipe);
|
unmask_signal(SIGPIPE, &orig_sig_pipe);
|
||||||
/* if we were interrupted, trip the old handler */
|
/* if we were interrupted, trip the old handler */
|
||||||
if(dload_interrupted) {
|
if(dload_interrupted) {
|
||||||
raise(SIGINT);
|
raise(SIGINT);
|
||||||
|
@ -210,9 +210,9 @@ static int key_in_keychain(alpm_handle_t *handle, const char *fpr)
|
|||||||
} else {
|
} else {
|
||||||
_alpm_log(handle, ALPM_LOG_DEBUG, "gpg error: %s\n", gpgme_strerror(err));
|
_alpm_log(handle, ALPM_LOG_DEBUG, "gpg error: %s\n", gpgme_strerror(err));
|
||||||
}
|
}
|
||||||
|
gpgme_key_unref(key);
|
||||||
|
|
||||||
error:
|
error:
|
||||||
gpgme_key_unref(key);
|
|
||||||
gpgme_release(ctx);
|
gpgme_release(ctx);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -797,7 +797,7 @@ int _alpm_process_siglist(alpm_handle_t *handle, const char *identifier,
|
|||||||
_("%s: key \"%s\" is unknown\n"), identifier, name);
|
_("%s: key \"%s\" is unknown\n"), identifier, name);
|
||||||
#ifdef HAVE_LIBGPGME
|
#ifdef HAVE_LIBGPGME
|
||||||
{
|
{
|
||||||
int answer;
|
int answer = 0;
|
||||||
alpm_pgpkey_t fetch_key;
|
alpm_pgpkey_t fetch_key;
|
||||||
memset(&fetch_key, 0, sizeof(fetch_key));
|
memset(&fetch_key, 0, sizeof(fetch_key));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user