Jacek Caban (@jacek) commented about dlls/gdi32/emfdc.c:
if (!SelectObject( blit_dc, blit_bitmap )) goto err; if (!BitBlt( blit_dc, 0, 0, bmp.bmWidth, bmp.bmHeight, *hdc, 0, 0, SRCCOPY )) goto err;
*hdc = blit_dc;
} if (!GetDIBits( blit_dc, blit_bitmap, 0, INT_MAX, NULL, info, DIB_RGB_COLORS )) goto err;*bitmap = blit_bitmap;
We'd still leak if `GetDIBits` fails. We could move setting it after `GetDIBits` call, but it's maybe easier to just duplicate `GetDIBits` call inside if-else statement.