# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1332867644 0 # Node ID 33d7cf373938e81e8bac27a0830e5319a865ccd8 # Parent fb3c9d7509dde6f55091b04388d48a9150f146f0 After looking at that last commit I realized what I was doing was unsafe... so rewriting the code safely. diff -r fb3c9d7509dd -r 33d7cf373938 win/dw.c --- a/win/dw.c Tue Mar 27 16:53:24 2012 +0000 +++ b/win/dw.c Tue Mar 27 17:00:44 2012 +0000 @@ -7755,18 +7755,18 @@ TCHAR tmpbuf[100] = {0}, *wbuffer; unsigned int len; - if(!buffer || !length || !(wbuffer = _alloca((length+1)*sizeof(TCHAR)))) + buffer[0] = 0; + + if(!buffer || !length) return; - buffer[0] = 0; - GetClassName(handle, tmpbuf, 99); if(_tcsnicmp(tmpbuf, COMBOBOXCLASSNAME, _tcslen(COMBOBOXCLASSNAME)+1)==0) { len = (int)SendMessage(handle, CB_GETLBTEXTLEN, (WPARAM)index, 0); - if(len < length && len != CB_ERR) + if(len != CB_ERR && (wbuffer = _alloca((len+1)*sizeof(TCHAR)))) { SendMessage(handle, CB_GETLBTEXT, (WPARAM)index, (LPARAM)wbuffer); strncpy(buffer, WideToUTF8(wbuffer), length); @@ -7776,13 +7776,12 @@ { len = (int)SendMessage(handle, LB_GETTEXTLEN, (WPARAM)index, 0); - if(len < length && len != LB_ERR) + if(len != LB_ERR && (wbuffer = _alloca((len+1)*sizeof(TCHAR)))) { SendMessage(handle, LB_GETTEXT, (WPARAM)index, (LPARAM)wbuffer); strncpy(buffer, WideToUTF8(wbuffer), length); } } - } /*