lkml.org 
[lkml]   [2007]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 20/32] NET: parse ip:port strings correctly in in4_pton
    -stable review patch.  If anyone has any objections, please let us know.
    ---------------------

    From: Jerome Borsboom <j.borsboom@erasmusmc.nl>

    in4_pton converts a textual representation of an ip4 address
    into an integer representation. However, when the textual representation
    is of in the form ip:port, e.g. 192.168.1.1:5060, and 'delim' is set to
    -1, the function bails out with an error when reading the colon.

    It makes sense to allow the colon as a delimiting character without
    explicitly having to set it through the 'delim' variable as there can be
    no ambiguity in the point where the ip address is completely parsed. This
    function is indeed called from nf_conntrack_sip.c in this way to parse
    textual ip:port combinations which fails due to the reason stated above.

    Signed-off-by: Jerome Borsboom <j.borsboom@erasmusmc.nl>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>

    ---
    net/core/utils.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- linux-2.6.20.13.orig/net/core/utils.c
    +++ linux-2.6.20.13/net/core/utils.c
    @@ -137,16 +137,16 @@ int in4_pton(const char *src, int srclen
    while(1) {
    int c;
    c = xdigit2bin(srclen > 0 ? *s : '\0', delim);
    - if (!(c & (IN6PTON_DIGIT | IN6PTON_DOT | IN6PTON_DELIM))) {
    + if (!(c & (IN6PTON_DIGIT | IN6PTON_DOT | IN6PTON_DELIM | IN6PTON_COLON_MASK))) {
    goto out;
    }
    - if (c & (IN6PTON_DOT | IN6PTON_DELIM)) {
    + if (c & (IN6PTON_DOT | IN6PTON_DELIM | IN6PTON_COLON_MASK)) {
    if (w == 0)
    goto out;
    *d++ = w & 0xff;
    w = 0;
    i++;
    - if (c & IN6PTON_DELIM) {
    + if (c & (IN6PTON_DELIM | IN6PTON_COLON_MASK)) {
    if (i != 4)
    goto out;
    break;
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-06-08 09:29    [W:0.047 / U:0.752 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site