浏览代码

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 <khoroshilov@ispras.ru>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Alexey Khoroshilov 13 年之前
父节点
当前提交
b8017d2957
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      fs/exofs/sys.c

+ 6 - 1
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)
 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->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);
 	strncpy(edp->uri, buf, edp->urilen);
 	return edp->urilen;
 	return edp->urilen;
 }
 }