exofs: check for allocation failure in uri_store()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Wed, 8 Aug 2012 17:02:37 +0000 (21:02 +0400)
committerBoaz Harrosh <bharrosh@panasas.com>
Sun, 12 Aug 2012 18:54:44 +0000 (21:54 +0300)
There is no memory allocation failure check in uri_store().
That can lead to NULL pointer dereference.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
fs/exofs/sys.c

index 5a7b691e748bdcda66746098d42194cb4682f7e5..1b4f2f95fc3797880ed7a7c6eab82b086ca11e4e 100644 (file)
@@ -80,8 +80,13 @@ static ssize_t uri_show(struct exofs_dev *edp, char *buf)
 
 static ssize_t uri_store(struct exofs_dev *edp, const char *buf, size_t len)
 {
+       uint8_t *new_uri;
+
        edp->urilen = strlen(buf) + 1;
-       edp->uri = krealloc(edp->uri, edp->urilen, GFP_KERNEL);
+       new_uri = krealloc(edp->uri, edp->urilen, GFP_KERNEL);
+       if (new_uri == NULL)
+               return -ENOMEM;
+       edp->uri = new_uri;
        strncpy(edp->uri, buf, edp->urilen);
        return edp->urilen;
 }