lib: check NULL before freeing passwd data
Add an additional NULL check condition in spw_free() and pw_free() to avoid freeing an already empty pointer. Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
This commit is contained in:
parent
02916e9cb2
commit
d594243fbb
18
lib/pwmem.c
18
lib/pwmem.c
@ -93,14 +93,16 @@
|
|||||||
|
|
||||||
void pw_free (/*@out@*/ /*@only@*/struct passwd *pwent)
|
void pw_free (/*@out@*/ /*@only@*/struct passwd *pwent)
|
||||||
{
|
{
|
||||||
free (pwent->pw_name);
|
if (pwent != NULL) {
|
||||||
if (pwent->pw_passwd) {
|
free (pwent->pw_name);
|
||||||
memzero (pwent->pw_passwd, strlen (pwent->pw_passwd));
|
if (pwent->pw_passwd) {
|
||||||
free (pwent->pw_passwd);
|
memzero (pwent->pw_passwd, strlen (pwent->pw_passwd));
|
||||||
|
free (pwent->pw_passwd);
|
||||||
|
}
|
||||||
|
free (pwent->pw_gecos);
|
||||||
|
free (pwent->pw_dir);
|
||||||
|
free (pwent->pw_shell);
|
||||||
|
free (pwent);
|
||||||
}
|
}
|
||||||
free (pwent->pw_gecos);
|
|
||||||
free (pwent->pw_dir);
|
|
||||||
free (pwent->pw_shell);
|
|
||||||
free (pwent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,11 +79,13 @@
|
|||||||
|
|
||||||
void spw_free (/*@out@*/ /*@only@*/struct spwd *spent)
|
void spw_free (/*@out@*/ /*@only@*/struct spwd *spent)
|
||||||
{
|
{
|
||||||
free (spent->sp_namp);
|
if (spent != NULL) {
|
||||||
if (NULL != spent->sp_pwdp) {
|
free (spent->sp_namp);
|
||||||
memzero (spent->sp_pwdp, strlen (spent->sp_pwdp));
|
if (NULL != spent->sp_pwdp) {
|
||||||
free (spent->sp_pwdp);
|
memzero (spent->sp_pwdp, strlen (spent->sp_pwdp));
|
||||||
|
free (spent->sp_pwdp);
|
||||||
|
}
|
||||||
|
free (spent);
|
||||||
}
|
}
|
||||||
free (spent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user