summaryrefslogtreecommitdiffstats
path: root/src/libdt.c
diff options
context:
space:
mode:
authorSteffen Trumtrar <s.trumtrar@pengutronix.de>2014-02-26 11:42:30 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2014-02-27 09:52:43 +0100
commit18dba42c0683457a5e251e88cc44a4480c573ce5 (patch)
tree00529d0ef31fc545d504897665ee0ab11113bafd /src/libdt.c
parent136ce91fb5d9194546bfcf49ac87a614a3a458c5 (diff)
downloaddt-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.c8
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;
}