* (Compares an internet name [buffer1] and stores in [buffer2] if found)
*/
void try_name(struct usersupp *us, void *data) {
+ struct passwd *pw;
struct trynamebuf *tnb;
tnb = (struct trynamebuf *)data;
if (!collapsed_strcmp(tnb->buffer1, us->fullname))
strcpy(tnb->buffer2, us->fullname);
- if (us->uid != BBSUID)
- if (!strcasecmp(tnb->buffer1, getpwuid(us->uid)->pw_name))
- strcpy(tnb->buffer2, us->fullname);
+ if (us->uid != BBSUID) {
+ pw = getpwuid(us->uid);
+ if (pw != NULL) {
+ if (!strcasecmp(tnb->buffer1, pw->pw_name)) {
+ strcpy(tnb->buffer2, us->fullname);
+ }
+ }
+ }
}