summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Stiborsky <martin.stiborsky@gmail.com>2015-01-05 22:54:32 +0100
committerMartin Stiborsky <martin.stiborsky@gmail.com>2015-01-05 22:54:32 +0100
commit6ffe86ca12c0a1b532532284aebe4ce417323cdb (patch)
tree185b5c594f53fdf445a3d3388fc1f8582de9385e
parent7d52029ae3a8bb21951106fe8e3e88156a57859b (diff)
null check for getpwuid and pw_name
-rw-r--r--i3lock.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/i3lock.c b/i3lock.c
index bead884..4f9d5d4 100644
--- a/i3lock.c
+++ b/i3lock.c
@@ -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) {