Re: [PATCH 1/4 2.6.28] cxgb3 - manage a private ip address foriSCSI

From: Andrew Morton
Date: Fri Aug 22 2008 - 15:55:35 EST


On Fri, 22 Aug 2008 14:17:18 -0500
Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx> wrote:

> Andrew Morton wrote:
> >> + unsigned long octet;
> >> + const char *parse = buf;
> >> + char *endp;
> >> + int i;
> >> +
> >> + for (i = 1; i <= 4; i++) {
> >> + octet = simple_strtoul(parse, &endp, 10);
> >> + if (endp == buf || octet > 255 ||
> >> + (i < 4 && *endp != '.') ||
> >> + (i == 4 && *endp != '\0' && *endp != '\n'))
> >> + return -EINVAL;
> >> + a = (a << 8) | octet;
> >> + parse = endp+1;
> >> + }
> >> + pi->iscsi_ipaddr = htonl(a);
> >> + return endp-buf;
> >> +}
> >>
> >
> > This appears to be taking a dotted quad ipv4 address in ascii form,
> > turning it into a u32 while performing checking?
> >
> > Surely we have a library function somewhere in networking which does
> > this? If not, I'd suggest writing one.
> >
> >
>
> try in_aton() from include/linux/inet.h.
>

yeah. But that function is a crock. No error checking at all!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/