chiark / gitweb /
errno is positive
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 11 Apr 2013 22:57:42 +0000 (18:57 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 11 Apr 2013 23:13:18 +0000 (19:13 -0400)
Make sure we compare errno against positive error codes.
The ones in hwclock.c and install.c can have an impact, the
rest are unlikely to be hit or in code that isn't widely
used.

Also check that errno > 0, to help gcc know that we are
returning a negative error code.

src/libsystemd-bus/bus-kernel.c
src/login/sd-login.c
src/readahead/sd-readahead.c
src/shared/hwclock.c
src/shared/install.c
src/shared/socket-util.c
src/shared/util.c
src/systemctl/systemctl.c

index e5e3536..b83dfcb 100644 (file)
@@ -339,7 +339,7 @@ int bus_kernel_read_message(sd_bus *bus, sd_bus_message **m) {
                 if (errno == EAGAIN)
                         return 0;
 
-                if (errno != -EMSGSIZE)
+                if (errno != EMSGSIZE)
                         return -errno;
 
                 sz *= 2;
index 7513f76..f433e3e 100644 (file)
@@ -730,7 +730,7 @@ _public_ int sd_login_monitor_new(const char *category, sd_login_monitor **m) {
 
         fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC);
         if (fd < 0)
-                return errno;
+                return -errno;
 
         if (!category || streq(category, "seat")) {
                 k = inotify_add_watch(fd, "/run/systemd/seats/", IN_MOVED_TO|IN_DELETE);
index 4a096ee..675d82c 100644 (file)
@@ -65,7 +65,7 @@ static int touch(const char *path) {
                 if (close(fd) >= 0)
                         break;
 
-                if (errno != -EINTR)
+                if (errno != EINTR)
                         return -errno;
         }
 
index 488c30e..55b0fa8 100644 (file)
@@ -190,7 +190,7 @@ int hwclock_is_localtime(void) {
                 truncate_nl(line);
                 local = streq(line, "LOCAL");
 
-        } else if (errno != -ENOENT)
+        } else if (errno != ENOENT)
                 return -errno;
 
         return local;
index 9e87039..b368b9f 100644 (file)
@@ -1637,7 +1637,7 @@ UnitFileState unit_file_get_state(
                         return state;
 
                 r = unit_file_can_install(&paths, root_dir, path, true);
-                if (r < 0 && errno != -ENOENT)
+                if (r < 0 && errno != ENOENT)
                         return r;
                 else if (r > 0)
                         return UNIT_FILE_DISABLED;
index 5345788..4933fe0 100644 (file)
@@ -204,7 +204,7 @@ int socket_address_parse_netlink(SocketAddress *a, const char *s) {
 
         errno = 0;
         if (sscanf(s, "%ms %u", &sfamily, &group) < 1)
-                return errno ? -errno : -EINVAL;
+                return errno > 0 ? -errno : -EINVAL;
 
         family = netlink_family_from_string(sfamily);
         if (family < 0)
index 57943b6..5827f6c 100644 (file)
@@ -5259,7 +5259,7 @@ int get_home_dir(char **_h) {
         errno = 0;
         p = getpwuid(u);
         if (!p)
-                return errno ? -errno : -ESRCH;
+                return errno > 0 ? -errno : -ESRCH;
 
         if (!path_is_absolute(p->pw_dir))
                 return -EINVAL;
index a950605..1c7edd5 100644 (file)
@@ -5260,7 +5260,7 @@ static int talk_initctl(void) {
         r = loop_write(fd, &request, sizeof(request), false) != sizeof(request);
         if (r) {
                 log_error("Failed to write to "INIT_FIFO": %m");
-                return errno ? -errno : -EIO;
+                return errno > 0 ? -errno : -EIO;
         }
 
         return 1;