libobs: Make get_reg_dword handle missing keys

Previously if the key didn't exist it would return uninitialized stack
memory. Reported at https://obsproject.com/forum/threads/obs-freezes-computer-on-startup-sometimes.78030/#post-330590
This commit is contained in:
Richard Stanway 2017-12-19 12:04:00 +01:00
parent 0863247936
commit 2f577c1b71
No known key found for this signature in database
GPG Key ID: AAC1E5265D71B3FD
2 changed files with 24 additions and 6 deletions

View File

@ -220,17 +220,31 @@ static void log_gaming_features(void)
L"AllowAutoGameMode", &game_mode_enabled);
blog(LOG_INFO, "Windows 10 Gaming Features:");
blog(LOG_INFO, "\tGame Bar: %s",
if (game_bar_enabled.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame Bar: %s",
(bool)game_bar_enabled.return_value ? "On" : "Off");
blog(LOG_INFO, "\tGame DVR Allowed: %s",
}
if (game_dvr_allowed.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame DVR Allowed: %s",
(bool)game_dvr_allowed.return_value ? "Yes" : "No");
blog(LOG_INFO, "\tGame DVR: %s",
}
if (game_dvr_enabled.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame DVR: %s",
(bool)game_dvr_enabled.return_value ? "On" : "Off");
blog(LOG_INFO, "\tGame DVR Background Recording: %s",
}
if (game_dvr_bg_recording.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame DVR Background Recording: %s",
(bool)game_dvr_bg_recording.return_value ? "On" :
"Off");
blog(LOG_INFO, "\tGame Mode: %s",
}
if (game_mode_enabled.status == ERROR_SUCCESS) {
blog(LOG_INFO, "\tGame Mode: %s",
(bool)game_mode_enabled.return_value ? "On" : "Off");
}
}
void log_system_info(void)

View File

@ -810,8 +810,12 @@ void get_reg_dword(HKEY hkey, LPCWSTR sub_key, LPCWSTR value_name,
status = RegOpenKeyEx(hkey, sub_key, 0, KEY_READ, &key);
if (status != ERROR_SUCCESS)
if (status != ERROR_SUCCESS) {
info->status = status;
info->size = 0;
info->return_value = 0;
return;
}
reg.size = sizeof(reg.return_value);