lkml.org 
[lkml]   [2008]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/4 2.6.28] cxgb3 - manage a private ip address for iSCSI
    Andrew Morton wrote:
    > On Fri, 22 Aug 2008 14:17:18 -0500
    > Steve Wise <swise@opengridcomputing.com> 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!
    >

    Oh you want error checking?

    :)

    Yea if this is a user/sysadmin supplied value, then we need a rubust
    inet_aton() in the kernel to validate it...




    \
     
     \ /
      Last update: 2008-08-22 22:09    [W:0.024 / U:118.404 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site