libobs/util: Fix VS static analysis warnings

This commit is contained in:
jpark37 2022-02-08 09:31:19 -08:00 committed by Jim
parent ccc57671eb
commit 3a1124a5fd

View File

@ -607,11 +607,13 @@ static void make_globent(struct os_globent *ent, WIN32_FIND_DATA *wfd,
dstr_from_wcs(&name, wfd->cFileName);
dstr_copy(&path, pattern);
slash = strrchr(path.array, '/');
if (slash)
dstr_resize(&path, slash + 1 - path.array);
else
dstr_free(&path);
if (path.array) {
slash = strrchr(path.array, '/');
if (slash)
dstr_resize(&path, slash + 1 - path.array);
else
dstr_free(&path);
}
dstr_cat_dstr(&path, &name);
ent->path = path.array;
@ -848,7 +850,7 @@ char *os_getcwd(char *path, size_t size)
if (!len)
return NULL;
path_w = bmalloc((len + 1) * sizeof(wchar_t));
path_w = bmalloc(((size_t)len + 1) * sizeof(wchar_t));
GetCurrentDirectoryW(len + 1, path_w);
os_wcs_to_utf8(path_w, (size_t)len, path, size);
bfree(path_w);
@ -1005,9 +1007,9 @@ void get_reg_dword(HKEY hkey, LPCWSTR sub_key, LPCWSTR value_name,
static inline void rtl_get_ver(struct win_version_info *ver)
{
RTL_OSVERSIONINFOEXW osver = {0};
HMODULE ntdll = GetModuleHandleW(L"ntdll");
NTSTATUS s;
if (!ntdll)
return;
NTSTATUS(WINAPI * get_ver)
(RTL_OSVERSIONINFOEXW *) =
@ -1016,8 +1018,9 @@ static inline void rtl_get_ver(struct win_version_info *ver)
return;
}
RTL_OSVERSIONINFOEXW osver = {0};
osver.dwOSVersionInfoSize = sizeof(osver);
s = get_ver(&osver);
NTSTATUS s = get_ver(&osver);
if (s < 0) {
return;
}
@ -1029,13 +1032,10 @@ static inline void rtl_get_ver(struct win_version_info *ver)
}
static inline bool get_reg_sz(HKEY key, const wchar_t *val, wchar_t *buf,
const size_t size)
DWORD size)
{
DWORD dwsize = (DWORD)size;
LSTATUS status;
status = RegQueryValueExW(key, val, NULL, NULL, (LPBYTE)buf, &dwsize);
buf[(size / sizeof(wchar_t)) - 1] = 0;
const LSTATUS status =
RegGetValueW(key, NULL, val, RRF_RT_REG_SZ, NULL, buf, &size);
return status == ERROR_SUCCESS;
}
@ -1222,23 +1222,27 @@ static void os_get_cores_internal(void)
info = malloc(len);
if (GetLogicalProcessorInformation(info, &len)) {
DWORD num = len / sizeof(*info);
temp = info;
if (info) {
if (GetLogicalProcessorInformation(info, &len)) {
DWORD num = len / sizeof(*info);
temp = info;
for (DWORD i = 0; i < num; i++) {
if (temp->Relationship == RelationProcessorCore) {
ULONG_PTR mask = temp->ProcessorMask;
for (DWORD i = 0; i < num; i++) {
if (temp->Relationship ==
RelationProcessorCore) {
ULONG_PTR mask = temp->ProcessorMask;
physical_cores++;
logical_cores += num_logical_cores(mask);
physical_cores++;
logical_cores +=
num_logical_cores(mask);
}
temp++;
}
temp++;
}
}
free(info);
free(info);
}
}
int os_get_physical_cores(void)