Ignore:
Timestamp:
Nov 22, 2005 11:51:50 PM (18 years ago)
Author:
bennylp
Message:

More optimizations for msg parser etc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_uri.c

    r74 r77  
    9090                                         int sep) 
    9191{ 
    92     const pjsip_param *p = param_list->next; 
    93     char *startbuf = buf; 
    94     char *endbuf = buf + size; 
    95  
    96     while (p != param_list) { 
     92    const pjsip_param *p; 
     93    char *startbuf; 
     94    char *endbuf; 
     95    int printed; 
     96 
     97    p = param_list->next; 
     98    if (p == param_list) 
     99        return 0; 
     100 
     101    startbuf = buf; 
     102    endbuf = buf + size; 
     103 
     104    do { 
    97105        *buf++ = (char)sep; 
    98106        copy_advance_escape(buf, p->name, pjsip_PARAM_CHAR_SPEC); 
     
    102110        } 
    103111        p = p->next; 
    104     } 
     112    } while (p != param_list); 
     113 
    105114    return buf-startbuf; 
    106115} 
     
    249258    //PJ_TODO(SHOULD_DISALLOW_URI_PORT_IN_FROM_TO_HEADER) 
    250259    if (url->port && context != PJSIP_URI_IN_FROMTO_HDR) { 
     260        if (endbuf - buf < 10) 
     261            return -1; 
     262 
    251263        *buf++ = ':'; 
    252264        printed = pj_utoa(url->port, buf); 
     
    271283    /* TTL param is not allowed in From, To, Route, and Record-Route header. */ 
    272284    if (url->ttl_param >= 0 && context != PJSIP_URI_IN_FROMTO_HDR && 
    273         context != PJSIP_URI_IN_ROUTING_HDR && (endbuf-buf) > 15)  
     285        context != PJSIP_URI_IN_ROUTING_HDR)  
    274286    { 
     287        if (endbuf - buf < 15) 
     288            return -1; 
    275289        pj_memcpy(buf, ";ttl=", 5); 
    276290        printed = pj_utoa(url->ttl_param, buf+5); 
     
    289303    { 
    290304        pj_str_t lr = { ";lr", 3 }; 
     305        if (endbuf - buf < 3) 
     306            return -1; 
    291307        copy_advance_check(buf, lr); 
    292308    } 
     
    301317    param = url->header_param.next; 
    302318    while (param != &url->header_param) { 
     319        if (endbuf - buf < param->name.slen+2) 
     320            return -1; 
    303321        *buf++ = hparam_char; 
    304322        copy_advance_escape(buf, param->name, pjsip_HDR_CHAR_SPEC); 
Note: See TracChangeset for help on using the changeset viewer.