Changeset 3047


Ignore:
Timestamp:
Jan 6, 2010 2:35:13 PM (15 years ago)
Author:
bennylp
Message:

Ticket #1012: Potential buffer overflow in Unicode string conversion (thanks Orville Pike for the report)

Location:
pjproject/trunk/pjlib/src/pj
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/src/pj/unicode_symbian.cpp

    r2394 r3047  
    3939        *wbuf = 0; 
    4040    } else { 
    41         wbuf[len] = 0; 
     41        if (len < wbuf_count) 
     42            wbuf[len] = 0; 
     43        else 
     44            wbuf[len-1] = 0; 
    4245    } 
    4346 
     
    6265        buf[0] = '\0'; 
    6366    } else { 
    64         buf[len] = '\0'; 
     67        if (len < buf_size) 
     68            buf[len] = '\0'; 
     69        else 
     70            buf[len-1] = '\0'; 
    6571    } 
    6672 
  • pjproject/trunk/pjlib/src/pj/unicode_win32.c

    r2394 r3047  
    3131    len = MultiByteToWideChar(CP_ACP, 0, s, len,  
    3232                              buf, buf_count); 
    33     buf[len] = 0; 
     33    if (buf_count) { 
     34        if (len < buf_count) 
     35            buf[len] = 0; 
     36        else 
     37            buf[len-1] = 0; 
     38    } 
     39 
    3440    return buf; 
    3541} 
     
    4248 
    4349    len = WideCharToMultiByte(CP_ACP, 0, wstr, len, buf, buf_size, NULL, NULL); 
    44     buf[len] = '\0'; 
     50    if (buf_size) { 
     51        if (len < buf_size) 
     52            buf[len] = '\0'; 
     53        else 
     54            buf[len-1] = '\0'; 
     55    } 
     56 
    4557    return buf; 
    4658} 
Note: See TracChangeset for help on using the changeset viewer.