libmpathcmd: limit size of the CLI buffer
authorHannes Reinecke <hare@suse.de>
Wed, 15 Jun 2016 14:49:54 +0000 (16:49 +0200)
committerHannes Reinecke <hare@suse.de>
Thu, 16 Jun 2016 08:51:05 +0000 (10:51 +0200)
A malicious program might inject a large buffer via the CLI and
causing the daemon to abort due to OOM.
So limit the maximum CLI buffer size to 64k.
Found by coverity.

Signed-off-by: Hannes Reinecke <hare@suse.com>
libmpathcmd/mpath_cmd.c
libmpathcmd/mpath_cmd.h

index 1aaf5ea..2290ecb 100644 (file)
@@ -142,6 +142,8 @@ 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;
        *reply = malloc(len);
        if (!*reply)
                return -1;
index 4ec0291..f33f000 100644 (file)
@@ -28,6 +28,7 @@ extern "C" {
 
 #define DEFAULT_SOCKET         "/org/kernel/linux/storage/multipathd"
 #define DEFAULT_REPLY_TIMEOUT  1000
+#define MAX_REPLY_LEN          65536
 
 
 /*