diff options
author | Martin Stiborsky <martin.stiborsky@gmail.com> | 2015-01-05 22:54:32 +0100 |
---|---|---|
committer | Martin Stiborsky <martin.stiborsky@gmail.com> | 2015-01-05 22:54:32 +0100 |
commit | 6ffe86ca12c0a1b532532284aebe4ce417323cdb (patch) | |
tree | 185b5c594f53fdf445a3d3388fc1f8582de9385e | |
parent | 7d52029ae3a8bb21951106fe8e3e88156a57859b (diff) |
null check for getpwuid and pw_name
-rw-r--r-- | i3lock.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -661,7 +661,8 @@ static void raise_loop(xcb_window_t window) { } int main(int argc, char *argv[]) { - char *username = getpwuid(getuid())->pw_name; + struct passwd *pw = getpwuid(getuid()); + char *username; char *image_path = NULL; int ret; struct pam_conv conv = {conv_callback, NULL}; @@ -686,8 +687,10 @@ int main(int argc, char *argv[]) { {NULL, no_argument, NULL, 0} }; - if (username == NULL) + if (pw == NULL) err(EXIT_FAILURE, "getpwuid() failed"); + if ((username = pw->pw_name) == NULL) + errx(EXIT_FAILURE, "pw->pw_name is NULL.\n"); char *optstring = "hvnbdc:p:ui:teI:f"; while ((o = getopt_long(argc, argv, optstring, longopts, &optind)) != -1) { |