aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@strace.io>2023-12-14 08:00:00 +0000
committerDmitry V. Levin <ldv@strace.io>2023-12-14 08:00:00 +0000
commit954234f0a477636eab751a6601d34bab1db41b0e (patch)
tree83403cf711c78b112e2738eb82b35d801cce18ee
parent297f0b554e497e95c891fd6a77f7ac5591649f26 (diff)
downloadpam-954234f0a477636eab751a6601d34bab1db41b0e.tar.gz
pam-954234f0a477636eab751a6601d34bab1db41b0e.tar.bz2
pam-954234f0a477636eab751a6601d34bab1db41b0e.zip
treewide: assume free(NULL) is no-op
The C standard guarantees that if the argument of free() is a null pointer, no action occurs.
-rw-r--r--doc/specs/parse_y.y4
-rw-r--r--libpam/include/security/_pam_macros.h9
-rw-r--r--libpam/pam_modutil_cleanup.c4
-rw-r--r--libpam/pam_modutil_getgrgid.c4
-rw-r--r--libpam/pam_modutil_getgrnam.c4
-rw-r--r--libpam/pam_modutil_getpwnam.c4
-rw-r--r--libpam/pam_modutil_getpwuid.c4
-rw-r--r--libpam/pam_modutil_getspnam.c4
-rw-r--r--libpamc/pamc_load.c6
-rw-r--r--libpamc/test/modules/pam_secret.c4
-rw-r--r--modules/pam_filter/pam_filter.c3
-rw-r--r--modules/pam_listfile/pam_listfile.c6
-rw-r--r--modules/pam_namespace/argv_parse.c5
-rw-r--r--modules/pam_stress/pam_stress.c6
-rw-r--r--modules/pam_timestamp/hmac_openssl_wrapper.c4
-rw-r--r--modules/pam_unix/pam_unix_auth.c3
-rw-r--r--modules/pam_xauth/pam_xauth.c10
17 files changed, 26 insertions, 58 deletions
diff --git a/doc/specs/parse_y.y b/doc/specs/parse_y.y
index b195f5d3..96809cd2 100644
--- a/doc/specs/parse_y.y
+++ b/doc/specs/parse_y.y
@@ -282,9 +282,7 @@ char *new_counter(const char *key)
counter_root = set_key(counter_root, key, new);
- if (last_label) {
- free(last_label);
- }
+ free(last_label);
last_label = strdup(new);
return new;
diff --git a/libpam/include/security/_pam_macros.h b/libpam/include/security/_pam_macros.h
index 8044e451..e36f4023 100644
--- a/libpam/include/security/_pam_macros.h
+++ b/libpam/include/security/_pam_macros.h
@@ -44,10 +44,8 @@ do { \
#define _pam_drop(X) \
do { \
- if (X) { \
- free(X); \
- X=NULL; \
- } \
+ free(X); \
+ X=NULL; \
} while (0)
/*
@@ -64,8 +62,7 @@ do { \
free(reply[reply_i].resp); \
} \
} \
- if (reply) \
- free(reply); \
+ free(reply); \
} while (0)
/* some debugging code */
diff --git a/libpam/pam_modutil_cleanup.c b/libpam/pam_modutil_cleanup.c
index 8224ce67..2077cbd7 100644
--- a/libpam/pam_modutil_cleanup.c
+++ b/libpam/pam_modutil_cleanup.c
@@ -12,8 +12,6 @@ void
pam_modutil_cleanup (pam_handle_t *pamh UNUSED, void *data,
int error_status UNUSED)
{
- if (data) {
/* junk it */
- (void) free(data);
- }
+ free(data);
}
diff --git a/libpam/pam_modutil_getgrgid.c b/libpam/pam_modutil_getgrgid.c
index 93a59633..fd495105 100644
--- a/libpam/pam_modutil_getgrgid.c
+++ b/libpam/pam_modutil_getgrgid.c
@@ -54,9 +54,7 @@ pam_modutil_getgrgid(pam_handle_t *pamh, gid_t gid)
D(("out of memory"));
/* no memory for the user - so delete the memory */
- if (buffer) {
- free(buffer);
- }
+ free(buffer);
return NULL;
}
buffer = new_buffer;
diff --git a/libpam/pam_modutil_getgrnam.c b/libpam/pam_modutil_getgrnam.c
index f5bc52ee..c7dd175c 100644
--- a/libpam/pam_modutil_getgrnam.c
+++ b/libpam/pam_modutil_getgrnam.c
@@ -44,9 +44,7 @@ pam_modutil_getgrnam(pam_handle_t *pamh, const char *group)
D(("out of memory"));
/* no memory for the group - so delete the memory */
- if (buffer) {
- free(buffer);
- }
+ free(buffer);
return NULL;
}
buffer = new_buffer;
diff --git a/libpam/pam_modutil_getpwnam.c b/libpam/pam_modutil_getpwnam.c
index 012c9ec8..9c96150b 100644
--- a/libpam/pam_modutil_getpwnam.c
+++ b/libpam/pam_modutil_getpwnam.c
@@ -44,9 +44,7 @@ pam_modutil_getpwnam(pam_handle_t *pamh, const char *user)
D(("out of memory"));
/* no memory for the user - so delete the memory */
- if (buffer) {
- free(buffer);
- }
+ free(buffer);
return NULL;
}
buffer = new_buffer;
diff --git a/libpam/pam_modutil_getpwuid.c b/libpam/pam_modutil_getpwuid.c
index cdd196ee..671fdf23 100644
--- a/libpam/pam_modutil_getpwuid.c
+++ b/libpam/pam_modutil_getpwuid.c
@@ -54,9 +54,7 @@ pam_modutil_getpwuid(pam_handle_t *pamh, uid_t uid)
D(("out of memory"));
/* no memory for the user - so delete the memory */
- if (buffer) {
- free(buffer);
- }
+ free(buffer);
return NULL;
}
buffer = new_buffer;
diff --git a/libpam/pam_modutil_getspnam.c b/libpam/pam_modutil_getspnam.c
index 2673668c..8b48db90 100644
--- a/libpam/pam_modutil_getspnam.c
+++ b/libpam/pam_modutil_getspnam.c
@@ -44,9 +44,7 @@ pam_modutil_getspnam(pam_handle_t *pamh, const char *user)
D(("out of memory"));
/* no memory for the user - so delete the memory */
- if (buffer) {
- free(buffer);
- }
+ free(buffer);
return NULL;
}
buffer = new_buffer;
diff --git a/libpamc/pamc_load.c b/libpamc/pamc_load.c
index 69fb8b87..f7365990 100644
--- a/libpamc/pamc_load.c
+++ b/libpamc/pamc_load.c
@@ -393,10 +393,8 @@ static pamc_id_node_t *__pamc_add_node(pamc_id_node_t *root, const char *id,
static pamc_id_node_t *__pamc_liberate_nodes(pamc_id_node_t *tree)
{
if (tree) {
- if (tree->agent_id) {
- free(tree->agent_id);
- tree->agent_id = NULL;
- }
+ free(tree->agent_id);
+ tree->agent_id = NULL;
tree->left = __pamc_liberate_nodes(tree->left);
tree->right = __pamc_liberate_nodes(tree->right);
diff --git a/libpamc/test/modules/pam_secret.c b/libpamc/test/modules/pam_secret.c
index f1c74c6f..c4b32ae9 100644
--- a/libpamc/test/modules/pam_secret.c
+++ b/libpamc/test/modules/pam_secret.c
@@ -171,9 +171,7 @@ static int converse(pam_handle_t *pamh, struct ps_state_s *new)
}
}
- if (single_reply) {
- free(single_reply);
- }
+ free(single_reply);
}
#ifdef PAM_DEBUG
diff --git a/modules/pam_filter/pam_filter.c b/modules/pam_filter/pam_filter.c
index a3c3bb24..72c3b480 100644
--- a/modules/pam_filter/pam_filter.c
+++ b/modules/pam_filter/pam_filter.c
@@ -238,8 +238,7 @@ static void free_evp(char *evp[])
if (evp)
for (i=0; i<4; ++i) {
- if (evp[i])
- free(evp[i]);
+ free(evp[i]);
}
free(evp);
}
diff --git a/modules/pam_listfile/pam_listfile.c b/modules/pam_listfile/pam_listfile.c
index 5561b9ea..a01b5a8a 100644
--- a/modules/pam_listfile/pam_listfile.c
+++ b/modules/pam_listfile/pam_listfile.c
@@ -92,7 +92,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
else if(!strcmp(myval,"fail"))
onerr = PAM_SERVICE_ERR;
else {
- if (ifname) free (ifname);
+ free(ifname);
return PAM_SERVICE_ERR;
}
else if(!strcmp(mybuf,"sense"))
@@ -101,11 +101,11 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED,
else if(!strcmp(myval,"deny"))
sense=1;
else {
- if (ifname) free (ifname);
+ free(ifname);
return onerr;
}
else if(!strcmp(mybuf,"file")) {
- if (ifname) free (ifname);
+ free(ifname);
ifname = malloc(strlen(myval)+1);
if (!ifname)
return PAM_BUF_ERR;
diff --git a/modules/pam_namespace/argv_parse.c b/modules/pam_namespace/argv_parse.c
index 7d418e05..fff93f4c 100644
--- a/modules/pam_namespace/argv_parse.c
+++ b/modules/pam_namespace/argv_parse.c
@@ -65,7 +65,7 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv)
new_argv = realloc(argv,
(max_argc+1)*sizeof(char *));
if (!new_argv) {
- if (argv) free(argv);
+ free(argv);
free(buf);
return -1;
}
@@ -131,8 +131,7 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv)
void argv_free(char **argv)
{
if (argv) {
- if (*argv)
- free(*argv);
+ free(*argv);
free(argv);
}
}
diff --git a/modules/pam_stress/pam_stress.c b/modules/pam_stress/pam_stress.c
index b2c55586..d0f54016 100644
--- a/modules/pam_stress/pam_stress.c
+++ b/modules/pam_stress/pam_stress.c
@@ -476,10 +476,8 @@ int pam_sm_chauthtok(pam_handle_t *pamh, int flags,
resp = NULL;
retval = converse(pamh,i,pmsg,&resp);
- if (txt) {
- free(txt);
- txt = NULL; /* clean up */
- }
+ free(txt);
+ txt = NULL; /* clean up */
if (retval != PAM_SUCCESS) {
return retval;
}
diff --git a/modules/pam_timestamp/hmac_openssl_wrapper.c b/modules/pam_timestamp/hmac_openssl_wrapper.c
index ac434377..a59a8de2 100644
--- a/modules/pam_timestamp/hmac_openssl_wrapper.c
+++ b/modules/pam_timestamp/hmac_openssl_wrapper.c
@@ -297,9 +297,7 @@ hmac_management(pam_handle_t *pamh, int debug, void **out, size_t *out_length,
ret = PAM_SUCCESS;
done:
- if (hmac_message != NULL) {
- free(hmac_message);
- }
+ free(hmac_message);
if (key != NULL) {
pam_overwrite_n(key, key_length);
free(key);
diff --git a/modules/pam_unix/pam_unix_auth.c b/modules/pam_unix/pam_unix_auth.c
index 4eccff8e..976699d4 100644
--- a/modules/pam_unix/pam_unix_auth.c
+++ b/modules/pam_unix/pam_unix_auth.c
@@ -86,8 +86,7 @@ do { \
static void
setcred_free (pam_handle_t *pamh UNUSED, void *ptr, int err UNUSED)
{
- if (ptr)
- free (ptr);
+ free (ptr);
}
int
diff --git a/modules/pam_xauth/pam_xauth.c b/modules/pam_xauth/pam_xauth.c
index bc8a3d74..d5e99c9f 100644
--- a/modules/pam_xauth/pam_xauth.c
+++ b/modules/pam_xauth/pam_xauth.c
@@ -197,9 +197,7 @@ run_coprocess(pam_handle_t *pamh, const char *input, char **output,
tmp = realloc(buffer, buffer_size + i + 1);
if (tmp == NULL) {
/* Uh-oh, bail. */
- if (buffer != NULL) {
- free(buffer);
- }
+ free(buffer);
close(opipe[0]);
waitpid(child, NULL, 0);
sigaction(SIGCHLD, &oldsa, NULL); /* restore old signal handler */
@@ -545,10 +543,8 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED,
char *t, *screen;
size_t tlen, slen;
/* Free the useless cookie string. */
- if (cookie != NULL) {
- free(cookie);
- cookie = NULL;
- }
+ free(cookie);
+ cookie = NULL;
/* Allocate enough space to hold an adjusted name. */
tlen = strlen(display) + LINE_MAX + 1;
t = calloc(1, tlen);