multipath-tools: Remove the limitation of IPC command reply length.
authorGris Ge <fge@redhat.com>
Wed, 16 Aug 2017 12:34:07 +0000 (20:34 +0800)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 20 Sep 2017 13:26:01 +0000 (15:26 +0200)
Issue:
    libmpathcmd will reply error 22(Invalid argument) when having 1000
    mpath.

Root cause:
    libmpathcmd return error when reply string length exceeded the 65535.

Fix:
    Remove the limitation on reply data length.

Extra:
    Initially this limitation was removed and improved by commit
    bb219efb131aef61c331f181193bf1d80e6b2a99
    but then was added back via commit
    7381c3f2b19903cc56d1ddafb13e8ad3afc08580

Signed-off-by: Gris Ge <fge@redhat.com>
libmpathcmd/mpath_cmd.c
libmpathcmd/mpath_cmd.h

index 1496b68..af618cf 100644 (file)
@@ -142,10 +142,6 @@ int mpath_recv_reply(int fd, char **reply, unsigned int timeout)
        len = mpath_recv_reply_len(fd, timeout);
        if (len <= 0)
                return len;
        len = mpath_recv_reply_len(fd, timeout);
        if (len <= 0)
                return len;
-       if (len > MAX_REPLY_LEN) {
-               errno = EINVAL;
-               return -1;
-       }
        *reply = malloc(len);
        if (!*reply)
                return -1;
        *reply = malloc(len);
        if (!*reply)
                return -1;
index 6534474..b57b708 100644 (file)
@@ -26,7 +26,6 @@ extern "C" {
 
 #define DEFAULT_SOCKET         "/org/kernel/linux/storage/multipathd"
 #define DEFAULT_REPLY_TIMEOUT  4000
 
 #define DEFAULT_SOCKET         "/org/kernel/linux/storage/multipathd"
 #define DEFAULT_REPLY_TIMEOUT  4000
-#define MAX_REPLY_LEN          65536
 
 
 /*
 
 
 /*