X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cde%2Fprograms%2Fdtsession%2FSmLock.c;h=e20207131d67719d2ce0bb82a653c02758118e19;hb=e5b3c011c64ab00cc00b771d203f8d1809ca846d;hp=20d9c6693b257c1db636ede3473af4cef75ca960;hpb=885b65a09abc1c2e3aafa0702aff909fcb41859a;p=oweals%2Fcde.git diff --git a/cde/programs/dtsession/SmLock.c b/cde/programs/dtsession/SmLock.c index 20d9c669..e2020713 100644 --- a/cde/programs/dtsession/SmLock.c +++ b/cde/programs/dtsession/SmLock.c @@ -153,14 +153,20 @@ static void BlinkCaret( XtPointer, XtIntervalId *) ; static Boolean CanReAuthenticate(char *name, uid_t uid, char *passwd, struct passwd **pwent, struct spwd **spent) { - Boolean fail = False; + if (!pwent) + return False; + + *pwent = (name == NULL) ? getpwuid(uid) : getpwnam(name); + if (!*pwent) + return False; - if (pwent) - *pwent = (name == NULL) ? getpwuid(uid) : getpwnam(name); - *spent = getspnam((*pwent)->pw_name); + *spent = getspnam((*pwent)->pw_name); #ifdef JET_AUTHDEBUG - fprintf(stderr, "CanReAuthenticate(): %s %s %s\n", + fprintf(stderr, "CanReAuthenticate(): uid: %d name: '%s' errno %d %s %s %s\n", + uid, + (name) ? name : "NULL", + errno, (*pwent) ? "PWENT" : "NULL", (*spent) ? "SPENT" : "NULL", (name) ? name : "NULL");