Invalid error code when using multipathd CLI
[multipath-tools/.git] / libmpathcmd / mpath_cmd.c
index 667a2dc..1496b68 100644 (file)
@@ -31,7 +31,7 @@ static ssize_t read_all(int fd, void *buf, size_t len, unsigned int timeout)
                        if (errno == EINTR)
                                continue;
                        return -1;
-               } else if (!pfd.revents & POLLIN)
+               } else if (!(pfd.revents & POLLIN))
                        continue;
                n = recv(fd, buf, len, 0);
                if (n < 0) {
@@ -142,8 +142,10 @@ int mpath_recv_reply(int fd, char **reply, unsigned int timeout)
        len = mpath_recv_reply_len(fd, timeout);
        if (len <= 0)
                return len;
-       if (len > MAX_REPLY_LEN)
-               return -EINVAL;
+       if (len > MAX_REPLY_LEN) {
+               errno = EINVAL;
+               return -1;
+       }
        *reply = malloc(len);
        if (!*reply)
                return -1;
@@ -151,7 +153,7 @@ int mpath_recv_reply(int fd, char **reply, unsigned int timeout)
        if (err) {
                free(*reply);
                *reply = NULL;
-               return err;
+               return -1;
        }
        return 0;
 }