Rémi Bernon (@rbernon) commented about dlls/win32u/sysparams.c:
- status = NtGdiDdDDIEnumAdapters2( &desc2 );
- if (status) return status;
- desc2.pAdapters = calloc( desc2.NumAdapters, sizeof(D3DKMT_ADAPTERINFO) );
- status = NtGdiDdDDIEnumAdapters2( &desc2 );
- if (status) return status;
- desc->NumAdapters = min( MAX_ENUM_ADAPTERS, desc2.NumAdapters );
- memcpy( desc->Adapters, desc2.pAdapters, desc->NumAdapters * sizeof(D3DKMT_ADAPTERINFO) );
- free( desc2.pAdapters );
- return status;
```suggestion:-15+0 if ((status = NtGdiDdDDIEnumAdapters2( &desc2 ))) return status;
if (!(desc2.pAdapters = calloc( desc2.NumAdapters, sizeof(*desc2.pAdapters) ))) return STATUS_NO_MEMORY; if (!(status = NtGdiDdDDIEnumAdapters2( &desc2 ))) { desc->NumAdapters = min( MAX_ENUM_ADAPTERS, desc2.NumAdapters ); memcpy( desc->Adapters, desc2.pAdapters, desc->NumAdapters * sizeof(*desc->Adapters) ); } free( desc2.pAdapters );
return status; ```
Lets save some lines, and avoid leaks.