On Sun, 18.01.15 23:57, Topi Miettinen (toiwo...@gmail.com) wrote:

> Don't use recvmsg(2) return value to check for too long packets
> (it doesn't work) but MSG_TRUNC flag.

Why precisely doesn't this work? I mean, it will consider messages
that are exactly as large as the buffer as too long, but otherwise the
old check should be fine, no?

(The new check is much nicer though, admittedly)

> ---
>  src/libudev/libudev-monitor.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
> index 484fefe..d8e551b 100644
> --- a/src/libudev/libudev-monitor.c
> +++ b/src/libudev/libudev-monitor.c
> @@ -609,7 +609,7 @@ retry:
>                  return NULL;
>          }
>  
> -        if (buflen < 32 || (size_t)buflen >= sizeof(buf)) {
> +        if (buflen < 32 || smsg.msg_flags & MSG_TRUNC) {
>                  log_debug("invalid message length");
>                  return NULL;
>          }
> -- 
> 2.1.4
> 
> _______________________________________________
> systemd-devel mailing list
> systemd-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to