Somebody needs to teach valgrind that, when a pointer to a structure of the form
struct sock_fprog { /* Required for SO_ATTACH_FILTER. */
unsigned short len; /* Number of filter blocks */
struct sock_filter __user *filter;
};
is passed to setsockopt() as the fourth argument, the values of any padding
bytes between the "len" and "filter" fields are irrelevant - if they're
uninitialized, it Just Doesn't Matter. (If some version of the Linux kernel
cares what the values of any bytes between "len" and "filter" are, that's a bug
in that version of the kernel.)
(The same applies to any other structure, pointers to which are passed to other
routines that are specified to take "generic pointer to blob" and "size of
blob" arguments, such as setsockopt() or ioctl(). It might need to check
whether the "operation code" argument and "blob length" arguments are correct
for the structure in question, but that's another matter.)
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]