X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fwin32_apply.c;h=96d9df6f578842eea91fc7b5308066b9a0df5715;hb=3a803d0087d51ea3caa80378bbae615fa45537c5;hp=ada5b919e64715f776a39d3dcb4e5e0b0b351a82;hpb=7b13472d9515dc87a15bd43a9822ac42217d3af9;p=wimlib diff --git a/src/win32_apply.c b/src/win32_apply.c index ada5b919..96d9df6f 100644 --- a/src/win32_apply.c +++ b/src/win32_apply.c @@ -807,7 +807,7 @@ end_wimboot_extraction(struct win32_apply_ctx *ctx) build_win32_extraction_path(dentry, ctx); - randomize_char_array_with_alnum(subkeyname, 20); + get_random_alnum_chars(subkeyname, 20); subkeyname[20] = L'\0'; res = RegLoadKey(HKEY_LOCAL_MACHINE, subkeyname, ctx->pathbuf.Buffer); @@ -1268,18 +1268,11 @@ retry: FileShortNameInformation); if (status == STATUS_INVALID_PARAMETER && !retried) { - /* Microsoft forgot to make it possible to remove short names * until Windows 7. Oops. Use a random short name instead. */ - + get_random_alnum_chars(info->FileName, 8); + wcscpy(&info->FileName[8], L".WLB"); info->FileNameLength = 12 * sizeof(wchar_t); - for (int i = 0; i < 8; i++) - info->FileName[i] = 'A' + (rand() % 26); - info->FileName[8] = L'.'; - info->FileName[9] = L'W'; - info->FileName[10] = L'L'; - info->FileName[11] = L'B'; - info->FileName[12] = L'\0'; retried = true; goto retry; } @@ -2482,7 +2475,7 @@ set_system_compression(HANDLE h, int format) /* Hard-coded list of files which the Windows bootloader may need to access * before the WOF driver has been loaded. */ -static wchar_t *bootloader_pattern_strings[] = { +static const wchar_t * const bootloader_pattern_strings[] = { L"*winload.*", L"*winresume.*", L"\\Windows\\AppPatch\\drvmain.sdb", @@ -2514,7 +2507,7 @@ static wchar_t *bootloader_pattern_strings[] = { }; static const struct string_list bootloader_patterns = { - .strings = bootloader_pattern_strings, + .strings = (wchar_t **)bootloader_pattern_strings, .num_strings = ARRAY_LEN(bootloader_pattern_strings), };