[lkml]   [1999]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: sendmsg() arguments

    > In Linux 2.0.x and other systems sendmsg() in its second argument msg
    > allows msg->msg_namelen to contain nonsense if msg->msg_name is NULL (what
    > kinda makes sense -- NULL in msg->msg_name means that there is no address
    > involved, so its size is meaningless). However 2.2.x checks msg->msg_namelen
    > instead -- if it's nonzero, msg->msg_name is considered to be an address
    > even if it's NULL (and therefore error is returned). Why?

    Because I consider this as the only correct way.

    sendmsg() behaviour is not prescribed by any standards
    and this way is preferred, because:

    - it is error prone: bad msg_name and msg_namelen!=0 is
    usual application bug, showing malloc failure or memory corruption.
    - it saves one statement if (name==NULL) namelen=0

    BTW some time ago recvfrom() behaved in the same manner,
    but broken way appeared to be described as valid in UNIX98,
    so that it was changed.

    Alexey Kuznetsov

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:51    [W:0.035 / U:18.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site