[lxc-devel] [PATCH 1/4] coverity: don't reference beyond structure
Dwight Engen
dwight.engen at oracle.com
Fri May 3 17:09:29 UTC 2013
On Fri, 3 May 2013 11:17:08 -0500
Serge Hallyn <serge.hallyn at ubuntu.com> wrote:
> can that be correct? That changes the value of the
> pointer. NLMSG_DATA adds aligned sizeof(struct nlmsghdr).
The current code is relying on the fact that our genlmsg looks like
this:
struct genlmsg {
struct nlmsghdr nlmsghdr;
struct genlmsghdr genlmsghdr;
};
so NLMSG_DATA(&request->nlmsghdr) == genlmsghdr (I think sizeof struct
nlmsghdr will make genlmsghdr be aligned anyway?). Right now lxc doesn't
use this code so I cannot test it in lxc, but let me write a test
program that dumps the pointers using the old way and the new way. We
do have a 2*PAGE_SIZE buffer these point to so I'm sure its not
overflowing, so maybe we do just want to ignore coverity.
> I suspect lxc is doing the right thing in practice, but could
> do some sort of casting somewhere to tell coverity to lighten
> up. But I haven't yet figured out what that is.
>
> Quoting Dwight Engen (dwight.engen at oracle.com):
> > Signed-off-by: Dwight Engen <dwight.engen at oracle.com>
> > ---
> > src/lxc/genl.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/lxc/genl.c b/src/lxc/genl.c
> > index 873b084..8fcb6b7 100644
> > --- a/src/lxc/genl.c
> > +++ b/src/lxc/genl.c
> > @@ -55,7 +55,7 @@ static int genetlink_resolve_family(const char
> > *family) request->nlmsghdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;
> > request->nlmsghdr.nlmsg_type = GENL_ID_CTRL;
> >
> > - genlmsghdr = NLMSG_DATA(&request->nlmsghdr);
> > + genlmsghdr = &request->genlmsghdr;
> > genlmsghdr->cmd = CTRL_CMD_GETFAMILY;
> >
> > ret = netlink_open(&handler, NETLINK_GENERIC);
> > @@ -72,7 +72,7 @@ static int genetlink_resolve_family(const char
> > *family) if (ret < 0)
> > goto out_close;
> >
> > - genlmsghdr = NLMSG_DATA(&reply->nlmsghdr);
> > + genlmsghdr = &reply->genlmsghdr;
> > len = reply->nlmsghdr.nlmsg_len;
> >
> > ret = -ENOMSG;
> > --
> > 1.8.1.4
> >
> >
> > ------------------------------------------------------------------------------
> > Get 100% visibility into Java/.NET code with AppDynamics Lite
> > It's a free troubleshooting tool designed for production
> > Get down to code-level detail for bottlenecks, with <2% overhead.
> > Download for free and get started troubleshooting in minutes.
> > http://p.sf.net/sfu/appdyn_d2d_ap2
> > _______________________________________________
> > Lxc-devel mailing list
> > Lxc-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/lxc-devel
More information about the lxc-devel
mailing list