LB_GETTEXT: Handle passed NULL buffer.
diff --git a/controls/listbox.c b/controls/listbox.c
index dd1a69f..9f97f5d 100644
--- a/controls/listbox.c
+++ b/controls/listbox.c
@@ -636,12 +636,13 @@
if ((index < 0) || (index >= descr->nb_items)) return LB_ERR;
if (HAS_STRINGS(descr))
{
+ if (!buffer)
+ return strlen(descr->items[index].str);
lstrcpy32A( buffer, descr->items[index].str );
return strlen(buffer);
- }
- else
- {
- memcpy( buffer, &descr->items[index].data, sizeof(DWORD) );
+ } else {
+ if (buffer)
+ *((LPDWORD)buffer)=*(LPDWORD)(&descr->items[index].data);
return sizeof(DWORD);
}
}