Ignore:
Timestamp:
Oct 8, 2013 9:08:13 AM (11 years ago)
Author:
bennylp
Message:

Re #1703: fixing general bugs. First installment: correct handling of snprintf return value

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/transport_srtp.c

    r4537 r4613  
    10441044    char b64_key[PJ_BASE256_TO_BASE64_LEN(MAX_KEY_LEN)+1]; 
    10451045    int b64_key_len = sizeof(b64_key); 
     1046    int print_len; 
    10461047 
    10471048    if (cs_idx == -1) 
     
    11021103 
    11031104    /* Print the crypto attribute value. */ 
    1104     *buffer_len = pj_ansi_snprintf(buffer, *buffer_len, "%d %s inline:%s", 
     1105    print_len = pj_ansi_snprintf(buffer, *buffer_len, "%d %s inline:%s", 
    11051106                                   tag,  
    11061107                                   crypto_suites[cs_idx].name, 
    11071108                                   b64_key); 
     1109    if (print_len < 1 || print_len >= *buffer_len) 
     1110        return PJ_ETOOSMALL; 
     1111 
     1112    *buffer_len = print_len; 
    11081113 
    11091114    return PJ_SUCCESS; 
Note: See TracChangeset for help on using the changeset viewer.