On Mon, 28 Mar 2005, Jakob Eriksson wrote:
Good thing you sent these patches. I was just thinking, should I dig in? :-)
You could recheck them? I tend to get code blind, when having so many cases that nearly are identical. As I said there are probably one two places where I didnt get the sematic of the code. Especially look for off-by-one (\0) when the replacement is a memcpy. I tend to do this, because of codestyle, like:
+++ dlls/msi/dialog.c 26 Mar 2005 09:40:51 -0000 @@ -131,7 +131,7 @@ ret = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); if( !ret ) return ret;
- strncpyW( ret, p, len );
- memcpy( ret, p, len*sizeof(WCHAR) ); ret[len-1] = 0; return ret;
}
This memcpyies one element more than needed.. but seemed much nicer than memcpy( ret, p, (len - 1)*sizeof(WHCAR);
I probably should have subtracted one from len, making it obvious that this is a strdupW, like: ret = HeapAlloc( GetProcessHeap(), 0, (len+1)*sizeof(WCHAR) ); memcpy( ret, p, len*sizeof(WCHAR) ); ret[len] = 0;
Peter