summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--udevd.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/udevd.c b/udevd.c
index 58371ba592..3fd3bfe6ad 100644
--- a/udevd.c
+++ b/udevd.c
@@ -313,16 +313,11 @@ static int running_with_devpath(struct uevent_msg *msg, int limit)
struct uevent_msg *loop_msg;
int childs_count = 0;
- if (msg->devpath == NULL)
- return 0;
-
list_for_each_entry(loop_msg, &running_list, node) {
if (limit && childs_count++ > limit) {
dbg("%llu, maximum number (%i) of child reached", msg->seqnum, childs_count);
return 1;
}
- if (loop_msg->devpath == NULL)
- continue;
/* return running parent/child device event */
if (compare_devpath(loop_msg->devpath, msg->devpath) != 0) {
@@ -431,6 +426,12 @@ static struct uevent_msg *get_msg_from_envbuf(const char *buf, int buf_size)
msg->envp[i++] = "UDEVD_EVENT=1";
msg->envp[i] = NULL;
+ if (!msg->devpath) {
+ info("DEVPATH missing, ingnore message");
+ free(msg);
+ return NULL;
+ }
+
return msg;
}