chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Docs: README: `,' -> `;'
[elogind.git]
/
libudev
/
libudev-monitor.c
diff --git
a/libudev/libudev-monitor.c
b/libudev/libudev-monitor.c
index b3e5d5f348499bb20acb0a208fe414cfb75b4861..c97f6faa653350489cdc5b907f26b53371a1b949 100644
(file)
--- a/
libudev/libudev-monitor.c
+++ b/
libudev/libudev-monitor.c
@@
-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 */
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));
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 (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;
return NULL;
+ }
if (nlh->properties_off+32 > buflen)
return NULL;
bufpos = nlh->properties_off;
if (nlh->properties_off+32 > buflen)
return NULL;
bufpos = nlh->properties_off;