diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2012-08-08 13:02:37 -0400 |
---|---|---|
committer | Boaz Harrosh <bharrosh@panasas.com> | 2012-08-12 14:54:44 -0400 |
commit | b8017d2957fb0ebf0c2aa91d48f2465f6f799738 (patch) | |
tree | 10910f00c4f4e4fa8ad00a64ba3e8e181900418c /fs/exofs | |
parent | 0d7614f09c1ebdbaa1599a5aba7593f147bf96ee (diff) |
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>
Diffstat (limited to 'fs/exofs')
-rw-r--r-- | fs/exofs/sys.c | 7 |
1 files changed, 6 insertions, 1 deletions
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) | |||
80 | 80 | ||
81 | static ssize_t uri_store(struct exofs_dev *edp, const char *buf, size_t len) | 81 | static ssize_t uri_store(struct exofs_dev *edp, const char *buf, size_t len) |
82 | { | 82 | { |
83 | uint8_t *new_uri; | ||
84 | |||
83 | edp->urilen = strlen(buf) + 1; | 85 | edp->urilen = strlen(buf) + 1; |
84 | edp->uri = krealloc(edp->uri, edp->urilen, GFP_KERNEL); | 86 | new_uri = krealloc(edp->uri, edp->urilen, GFP_KERNEL); |
87 | if (new_uri == NULL) | ||
88 | return -ENOMEM; | ||
89 | edp->uri = new_uri; | ||
85 | strncpy(edp->uri, buf, edp->urilen); | 90 | strncpy(edp->uri, buf, edp->urilen); |
86 | return edp->urilen; | 91 | return edp->urilen; |
87 | } | 92 | } |