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/pjlib/src/pj/errno.c

    r4537 r4613  
    9292static int pjlib_error(pj_status_t code, char *buf, pj_size_t size) 
    9393{ 
     94    int len; 
     95 
    9496#if defined(PJ_HAS_ERROR_STRING) && PJ_HAS_ERROR_STRING!=0 
    9597    unsigned i; 
     
    106108#endif 
    107109 
    108     return pj_ansi_snprintf( buf, size, "Unknown pjlib error %d", code); 
     110    len = pj_ansi_snprintf( buf, size, "Unknown pjlib error %d", code); 
     111    if (len < 1 || len >= (int)size) 
     112        len = size - 1; 
     113    return len; 
    109114} 
    110115 
     
    200205    } 
    201206 
    202     if (len < 1) { 
    203         *buf = '\0'; 
    204         len = 0; 
     207    if (len < 1 || len >= (int)bufsize) { 
     208        len = bufsize - 1; 
     209        buf[len] = '\0'; 
    205210    } 
    206211 
Note: See TracChangeset for help on using the changeset viewer.