diff options
author | Steffen Trumtrar <s.trumtrar@pengutronix.de> | 2014-02-26 11:42:30 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-27 09:52:43 +0100 |
commit | 18dba42c0683457a5e251e88cc44a4480c573ce5 (patch) | |
tree | 00529d0ef31fc545d504897665ee0ab11113bafd /src/libdt.c | |
parent | 136ce91fb5d9194546bfcf49ac87a614a3a458c5 (diff) | |
download | dt-utils-18dba42c0683457a5e251e88cc44a4480c573ce5.tar.gz dt-utils-18dba42c0683457a5e251e88cc44a4480c573ce5.tar.xz |
libdt: fix segfault
strdup will segfault, if udev_device_get_devnode does not find the part.
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'src/libdt.c')
-rw-r--r-- | src/libdt.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libdt.c b/src/libdt.c index 4a3ce1e..61a0706 100644 --- a/src/libdt.c +++ b/src/libdt.c @@ -2040,8 +2040,12 @@ static int of_path_type_partname(struct of_path *op, const char *name) part = device_find_partition(op->dev, name); if (part) { - op->devpath = strdup(udev_device_get_devnode(part)); - pr_debug("%s: found part '%s'\n", __func__, name); + if (udev_device_get_devnode(part) != NULL) { + op->devpath = strdup(udev_device_get_devnode(part)); + pr_debug("%s: found part '%s'\n", __func__, name); + } else { + pr_debug("%s: '%s' not found\n", __func__, name); + } return 0; } |