From: Alexey Khoroshilov Date: Wed, 8 Aug 2012 17:02:37 +0000 (+0400) Subject: exofs: check for allocation failure in uri_store() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=b8017d2957fb0ebf0c2aa91d48f2465f6f799738;p=openwrt%2Fstaging%2Fblogic.git exofs: check for allocation failure in uri_store() 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 Signed-off-by: Boaz Harrosh --- diff --git a/fs/exofs/sys.c b/fs/exofs/sys.c index 5a7b691e748b..1b4f2f95fc37 100644 --- a/fs/exofs/sys.c +++ b/fs/exofs/sys.c @@ -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; }