From: Zbigniew Jędrzejewski-Szmek Date: Thu, 21 Mar 2013 23:06:55 +0000 (-0400) Subject: initctl: fix return from unitialized memory in error path X-Git-Tag: v199~100 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=3143987f93120da696c2d363c34cacf9a82aea93;hp=7cb2086695fdeed33b2fb148492a224dd951fa7e initctl: fix return from unitialized memory in error path src/initctl/initctl.c: In function 'server_init': src/initctl/initctl.c:282:13: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized] int r; ^ --- diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c index 0eb008d9e..735f1e145 100644 --- a/src/initctl/initctl.c +++ b/src/initctl/initctl.c @@ -290,7 +290,8 @@ static int server_init(Server *s, unsigned n_sockets) { zero(*s); - if ((s->epoll_fd = epoll_create1(EPOLL_CLOEXEC)) < 0) { + s->epoll_fd = epoll_create1(EPOLL_CLOEXEC); + if (s->epoll_fd < 0) { r = -errno; log_error("Failed to create epoll object: %s", strerror(errno)); goto fail; @@ -303,8 +304,10 @@ static int server_init(Server *s, unsigned n_sockets) { fd = SD_LISTEN_FDS_START+i; - if ((r = sd_is_fifo(fd, NULL)) < 0) { - log_error("Failed to determine file descriptor type: %s", strerror(-r)); + r = sd_is_fifo(fd, NULL); + if (r < 0) { + log_error("Failed to determine file descriptor type: %s", + strerror(-r)); goto fail; } @@ -314,9 +317,11 @@ static int server_init(Server *s, unsigned n_sockets) { goto fail; } - if (!(f = new0(Fifo, 1))) { + f = new0(Fifo, 1); + if (!f) { r = -ENOMEM; - log_error("Failed to create fifo object: %s", strerror(errno)); + log_error("Failed to create fifo object: %s", + strerror(errno)); goto fail; } @@ -328,7 +333,8 @@ static int server_init(Server *s, unsigned n_sockets) { if (epoll_ctl(s->epoll_fd, EPOLL_CTL_ADD, fd, &ev) < 0) { r = -errno; fifo_free(f); - log_error("Failed to add fifo fd to epoll object: %s", strerror(errno)); + log_error("Failed to add fifo fd to epoll object: %s", + strerror(errno)); goto fail; } @@ -339,7 +345,9 @@ static int server_init(Server *s, unsigned n_sockets) { } if (bus_connect(DBUS_BUS_SYSTEM, &s->bus, NULL, &error) < 0) { - log_error("Failed to get D-Bus connection: %s", bus_error_message(&error)); + log_error("Failed to get D-Bus connection: %s", + bus_error_message(&error)); + r = -EIO; goto fail; }