39 lines
1.0 KiB
Diff
39 lines
1.0 KiB
Diff
|
From 92d49ecfaabcd015cf9957a0863996eaa5755747 Mon Sep 17 00:00:00 2001
|
||
|
From: Adam Kwolek <adam.kwolek@intel.com>
|
||
|
Date: Tue, 7 Feb 2012 15:03:03 +0100
|
||
|
Subject: [PATCH 01/12] FIX: NULL pointer to strdup() can be passed
|
||
|
|
||
|
When result from strchr() is NULL and it is assigned to subarray,
|
||
|
NULL pointer can be passed to strdup() function and coredump file
|
||
|
is generated.
|
||
|
|
||
|
Subarray is checked for NULL pointer, so it is assumed that it can
|
||
|
be NULL at this moment.
|
||
|
|
||
|
Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
|
||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||
|
---
|
||
|
util.c | 5 +++--
|
||
|
1 files changed, 3 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/util.c b/util.c
|
||
|
index e5f7a20..7abbff7 100644
|
||
|
--- a/util.c
|
||
|
+++ b/util.c
|
||
|
@@ -966,9 +966,10 @@ struct supertype *super_by_fd(int fd, char **subarrayp)
|
||
|
char *dev = verstr+1;
|
||
|
|
||
|
subarray = strchr(dev, '/');
|
||
|
- if (subarray)
|
||
|
+ if (subarray) {
|
||
|
*subarray++ = '\0';
|
||
|
- subarray = strdup(subarray);
|
||
|
+ subarray = strdup(subarray);
|
||
|
+ }
|
||
|
container = devname2devnum(dev);
|
||
|
if (sra)
|
||
|
sysfs_free(sra);
|
||
|
--
|
||
|
1.7.4.4
|
||
|
|