Ignore:
Timestamp:
Jul 1, 2019 7:12:43 AM (5 years ago)
Author:
ming
Message:

Fixed #2209: Insufficient variable storage to contain Expires header field/ parameter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip-simple/evsub.c

    r5917 r6035  
    500500 */ 
    501501static void set_timer( pjsip_evsub *sub, int timer_id, 
    502                        pj_int32_t seconds) 
     502                       pj_uint32_t seconds) 
    503503{ 
    504504    if (sub->timer.id != TIMER_TYPE_NONE) { 
     
    510510    } 
    511511 
    512     if (timer_id != TIMER_TYPE_NONE && seconds > 0) { 
     512    if (timer_id != TIMER_TYPE_NONE && seconds != PJSIP_EXPIRES_NOT_SPECIFIED) 
     513    { 
    513514        pj_time_val timeout; 
    514515 
     
    10691070PJ_DEF(pj_status_t) pjsip_evsub_initiate( pjsip_evsub *sub, 
    10701071                                          const pjsip_method *method, 
    1071                                           pj_int32_t expires, 
     1072                                          pj_uint32_t expires, 
    10721073                                          pjsip_tx_data **p_tdata) 
    10731074{ 
     
    10971098 
    10981099    /* Update and add expires header: */ 
    1099     if (expires >= 0) 
     1100    if (expires != PJSIP_EXPIRES_NOT_SPECIFIED) 
    11001101        sub->expires->ivalue = expires; 
    11011102    pjsip_msg_add_hdr( tdata->msg, (pjsip_hdr*) 
     
    19971998         */ 
    19981999        if (sub->expires->ivalue != 0 && 
    1999             sub_state->expires_param >= 0 && 
     2000            sub_state->expires_param != PJSIP_EXPIRES_NOT_SPECIFIED && 
    20002001            (pj_stricmp(&sub_state->sub_state, &STR_ACTIVE)==0 || 
    20012002             pj_stricmp(&sub_state->sub_state, &STR_PENDING)==0)) 
    20022003        { 
    2003             int next_refresh = sub_state->expires_param; 
     2004            unsigned next_refresh = sub_state->expires_param; 
    20042005            unsigned timeout; 
    20052006 
     
    21002101            evpkg = find_pkg(&event_hdr->event_type); 
    21012102            if (evpkg) { 
    2102                 if (expires->ivalue < (pj_int32_t)evpkg->pkg_expires) 
     2103                if (expires->ivalue < evpkg->pkg_expires) 
    21032104                    sub->expires->ivalue = expires->ivalue; 
    21042105                else 
Note: See TracChangeset for help on using the changeset viewer.