31 lines
839 B
Diff
31 lines
839 B
Diff
--- a/src/auth_pam.c
|
|
+++ b/src/auth_pam.c
|
|
@@ -138,7 +138,12 @@
|
|
|
|
/* we can be installed setuid root to support shadow passwords,
|
|
and we don't need root privileges any longer. --marekm */
|
|
- setuid(getuid());
|
|
+ int retval;
|
|
+ retval = setuid(getuid());
|
|
+ /* if setuid's return value isn't checked, it's a security issue */
|
|
+ if (retval != 0) {
|
|
+ return 0;
|
|
+ }
|
|
|
|
return 1;
|
|
}
|
|
--- a/src/auth_passwd.c
|
|
+++ a/src/auth_passwd.c
|
|
@@ -68,7 +68,11 @@
|
|
|
|
/* we can be installed setuid root to support shadow passwords,
|
|
and we don't need root privileges any longer. --marekm */
|
|
- setuid(getuid());
|
|
+ int retval;
|
|
+ retval = setuid(getuid());
|
|
+ if (retval != 0) {
|
|
+ return 0;
|
|
+ }
|
|
|
|
if (strlen(pwd_entry->pw_passwd) < 13) {
|
|
perror("password entry has no pwd\n");
|