chiark / gitweb /
Docs: README: `,' -> `;'
[elogind.git] / libudev / libudev-monitor.c
index b3e5d5f348499bb20acb0a208fe414cfb75b4861..c97f6faa653350489cdc5b907f26b53371a1b949 100644 (file)
@@ -342,6 +342,7 @@ int udev_monitor_filter_update(struct udev_monitor *udev_monitor)
        bpf_stmt(ins, &i, BPF_RET|BPF_K, 0xffffffff);
 
        /* install filter */
+       memset(&filter, 0x00, sizeof(filter));
        filter.len = i;
        filter.filter = ins;
        err = setsockopt(udev_monitor->sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter));
@@ -625,8 +626,11 @@ retry:
        if (memcmp(buf, "libudev", 8) == 0) {
                /* udev message needs proper version magic */
                nlh = (struct udev_monitor_netlink_header *) buf;
-               if (nlh->magic != htonl(UDEV_MONITOR_MAGIC))
+               if (nlh->magic != htonl(UDEV_MONITOR_MAGIC)) {
+                       err(udev_monitor->udev, "ignored a message from an invalid release of udevadm (%x != %x)\n",
+                           nlh->magic, htonl(UDEV_MONITOR_MAGIC));
                        return NULL;
+               }
                if (nlh->properties_off+32 > buflen)
                        return NULL;
                bufpos = nlh->properties_off;