Michael Stefaniuc mstefani@winehq.org writes:
On 02/12/2018 11:23 AM, Alexandre Julliard wrote:
Michael Stefaniuc mstefani@winehq.org writes:
+static inline WCHAR *heap_strdupW(const WCHAR *str) +{
- WCHAR *dst;
- SIZE_T len;
- if(!str)
return NULL;
- len = (lstrlenW(str) + 1) * sizeof(*str);
- dst = heap_alloc(len);
- if (dst)
memcpy(dst, str, len);
- return dst;
+}
I'm not sure the NULL check is a good idea.
And I disagree with your disagreement!
I just sent in [PATCH] wininet: Avoid passing NULL to heap_strdupW() to show how ugly that would make the code. And that's the stuff that just crashed due to the tests.
If you want the NULL check removed for the other strdup variants, especially the heap_strdupAW(), that would uglify the code even more as that is used in a ton of A functions that just forward to the W functions.
The current usage is clean only because we are not checking for allocation failure, but that's broken. If we add proper handling, then the NULL checks will be needed anyway.