if(RegSetValueExW(hkeydriver, driver, 0, REG_SZ, (BYTE*)installed,
(sizeof(installed)+1)*sizeof(WCHAR)) != ERROR_SUCCESS)
sizeof(installed) is already in bytes and includes the null terminator.
/* Driver and Setup entries use the system path unless a path is specified. */
if(lstrcmpiW(driverW, entry) == 0 || lstrcmpiW(setupW, entry) == 0)
{
lstrcpyW(value, path);
lstrcatW(value, slash);
lstrcatW(value, divider);
}
else
lstrcpyW(value, divider);
Some sort of overflow check might be good here.
- ret = SQLInstallDriverEx("WINE ODBC Driver\0Driver=sample.dll\0Setup=sample.dll\0\0", NULL, path, MAX_PATH, &size, ODBC_INSTALL_COMPLETE, NULL);
- sql_ret = SQLInstallerErrorW(1, &error_code, NULL, 0, NULL);
- if (sql_ret && error_code == ODBC_ERROR_WRITING_SYSINFO_FAILED)
- {
win_skip("not enough privileges\n");
return;
- }
- ok(sql_ret && error_code == SQL_SUCCESS, "SQLInstallDriverEx failed %d, %u\n", sql_ret, error_code);
- ok(!strcmp(path, syspath), "invalid path %s\n", path);
This doesn't use the value of ret.