Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
if (query_reg_ascii_value( hkey, "ModeCount", value, sizeof(buffer) ) && value->Type == REG_DWORD) source->mode_count = *(const DWORD *)value->Data;
- /* Modes, allocate an extra mode for easier iteration */
- if ((source->modes = calloc( source->mode_count + 1, sizeof(DEVMODEW) )))
- /* Modes */
- size = offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data[(source->mode_count + 1) * sizeof(*source->modes)] );
- if ((value = malloc( size )) && query_reg_ascii_value( hkey, "Modes", value, size ))
it’s unlikely but value leaks when the reg query fails.