diff --git a/i3lock.c b/i3lock.c index fd32f97..bead884 100644 --- a/i3lock.c +++ b/i3lock.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -659,18 +660,8 @@ static void raise_loop(xcb_window_t window) { } } -char* whoami(void) { - uid_t uid = geteuid(); - struct passwd *pw = getpwuid(uid); - if (pw) { - return pw->pw_name; - } else { - errx(EXIT_FAILURE, "Username not known!\n"); - } -} - int main(int argc, char *argv[]) { - char *username = whoami(); + char *username = getpwuid(getuid())->pw_name; char *image_path = NULL; int ret; struct pam_conv conv = {conv_callback, NULL}; @@ -695,6 +686,9 @@ int main(int argc, char *argv[]) { {NULL, no_argument, NULL, 0} }; + if (username == NULL) + err(EXIT_FAILURE, "getpwuid() failed"); + char *optstring = "hvnbdc:p:ui:teI:f"; while ((o = getopt_long(argc, argv, optstring, longopts, &optind)) != -1) { switch (o) {