Multipathd wasn't setting buflen when it read in a uevent message. This was
causing buflen to be used unitialized, and would often keep multipathd from
processing uevents. This patch correctly initializes buflen to the size of the
buffer received.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
smsg.msg_control = cred_msg;
smsg.msg_controllen = sizeof(cred_msg);
- if (recvmsg(sock, &smsg, 0) < 0) {
+ buflen = recvmsg(sock, &smsg, 0);
+ if (buflen < 0) {
if (errno != EINTR)
condlog(0, "error receiving message");
continue;
/* action string */
uev->action = buffer;
pos = strchr(buffer, '@');
- if (!pos)
+ if (!pos) {
+ condlog(3, "bad action string '%s'", buffer);
continue;
+ }
pos[0] = '\0';
/* sysfs path */