Merge pull request #446 from ikerexxe/spw_free

lib: check NULL before freeing passwd data
This commit is contained in:
Serge Hallyn 2021-11-22 07:32:32 -06:00 committed by GitHub
commit 3a0160beb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 13 deletions

View File

@ -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);
} }

View File

@ -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);
} }