diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index af8f3d6..4528547 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -417,12 +417,13 @@ void read_user_name(char *name) #ifdef HAVE_GETPWUID struct passwd *skr; const char *str; - if ((str=getlogin()) == NULL) + if ((skr=getpwuid(geteuid())) != NULL) { - if ((skr=getpwuid(geteuid())) != NULL) - str=skr->pw_name; - else if (!(str=getenv("USER")) && !(str=getenv("LOGNAME")) && - !(str=getenv("LOGIN"))) + str=skr->pw_name; + } else if ((str=getlogin()) == NULL) + { + if (!(str=getenv("USER")) && !(str=getenv("LOGNAME")) && + !(str=getenv("LOGIN"))) str="UNKNOWN_USER"; } (void) strmake(name,str,USERNAME_LENGTH);