On Mon, 2016-02-15 at 14:59 +0000, Edward Cree wrote: > Signed-off-by: Edward Cree [...] > @@ -950,6 +1154,19 @@ static int rxclass_get_mask(char *str, unsigned char *p, >                 *(__be32 *)&p[opt->moffset] = ~val; >                 break; >         } > +       case OPT_IP6: { > +               __be32 val[4]; > +               int i; > +               err = rxclass_get_ipv6(str, val); > +               if (err) > +                       return -1; > +               for (i = 0; i < 4; i++) { > +                       ((__be32 *)&p[opt->offset])[i] = val[i]; > +                       if (opt->moffset >= 0) > +                               ((__be32 *)&p[opt->moffset])[i] = ~val[i]; This pointer arithmetic looks terrible.  I think memcpy() would be much clearer here. [...] > The information contained in this message is confidential and is > intended for the addressee(s) only. If you have received this message > in error, please notify the sender immediately and delete the > message. Unless you are an addressee (or authorized to receive for an > addressee), you may not use, copy or disclose to anyone this message > or any information contained in this message. The unauthorized use, > disclosure, copying or alteration of this message is strictly > prohibited. I won't apply patches labelled as "confidential".  You need to stop including this nonsense in your public messages (I thought you fixed this once before). Ben. -- Ben Hutchings If at first you don't succeed, you're doing about average.