[PATCH v3 3/7] tests: check decoding of netlink protocol
Fabien Siron
fabien.siron at epita.fr
Thu Jun 16 14:20:07 UTC 2016
Quoting Dmitry V. Levin (2016-06-16 10:40:18)
> On Wed, Jun 15, 2016 at 12:43:01PM +0000, Fabien Siron wrote:
> [...]
> > +static void
> > +send_query(const int fd, const unsigned int pid_magic)
> > +{
> > + struct {
> > + struct nlmsghdr nlh;
> > + char magic[4];
> > + } req = {
> > + .nlh = {
> > + .nlmsg_len = sizeof(req),
> > + .nlmsg_type = NLMSG_NOOP,
> > + .nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
> > + },
> > + .magic = "abcd"
> > + };
> > +
> > + if (sendto(fd, &req, sizeof(req), MSG_DONTWAIT, NULL, 0) !=
> > + (unsigned) sizeof(req))
> > + perror_msg_and_skip("sendto");
> > +
> > + printf("sendto(%d<NETLINK:[SOCK_DIAG:%u]>, {{len=%u, type=NLMSG_NOOP, "
> > + "flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}, \"abcd\"}, %u, "
> > + "MSG_DONTWAIT, NULL, 0) = %u\n",
> > + fd, pid_magic, (unsigned) sizeof(req), NLM_F_DUMP,
> > + (unsigned) sizeof(req), (unsigned) sizeof(req));
>
> I'd also add coverage for the following corner cases when
> + data length equals to sizeof(struct nlmsghdr);
> + data length is less than sizeof(struct nlmsghdr);
> + data length is enough but data points to unmapped memory.
>
I am not sure what you mean by "data". Do you actually talk about the
request (1) or the data behind the netlink header (2)?
If it's (2), how do you want to handle the case where data points to
unmapped memory as the data have to be contiguous to the netlink header?
Regards,
--
Fabien Siron
More information about the Strace-devel
mailing list