Fix memory leak.
* libmisc/setupenv.c: Free pw_dir and pw_shell before reallocating them.
This commit is contained in:
parent
b6c1a8579e
commit
ee1952424d
@ -3,6 +3,8 @@
|
||||
* libmisc/setupenv.c: xstrdup the static char* temp_pw_dir /
|
||||
temp_pw_shell. That way we can continue to use pw_free() without
|
||||
segving. Thanks to Serge Hallyn for the patch.
|
||||
* libmisc/setupenv.c: Free pw_dir and pw_shell before reallocating
|
||||
them.
|
||||
|
||||
2013-08-01 Yuri Kozlov <yuray@komyakino.ru>
|
||||
|
||||
|
@ -228,6 +228,7 @@ void setup_env (struct passwd *info)
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
(void) puts (_("No directory, logging in with HOME=/"));
|
||||
free (info->pw_dir);
|
||||
info->pw_dir = xstrdup (temp_pw_dir);
|
||||
}
|
||||
|
||||
@ -244,6 +245,7 @@ void setup_env (struct passwd *info)
|
||||
if ((NULL == info->pw_shell) || ('\0' == *info->pw_shell)) {
|
||||
static char temp_pw_shell[] = SHELL;
|
||||
|
||||
free (info->pw_shell);
|
||||
info->pw_shell = xstrdup (temp_pw_shell);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user