mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[iso] fix detection of 'txt.cfg' as a main Syslinux config file
* While we need to detect that 'txt.cfg' is a Syslinux config file, so that we can alter it for persistence, it should never be used as a main config file, such as the one we link to when we create /syslinux.cfg. * Closes #1375
This commit is contained in:
parent
9bd6c31dea
commit
0a24940c85
2 changed files with 14 additions and 13 deletions
17
src/iso.c
17
src/iso.c
|
@ -87,7 +87,8 @@ static const char* wininst_name[] = { "install.wim", "install.esd", "install.swm
|
||||||
static const char* grub_dirname = "/boot/grub/i386-pc";
|
static const char* grub_dirname = "/boot/grub/i386-pc";
|
||||||
static const char* grub_cfg = "grub.cfg";
|
static const char* grub_cfg = "grub.cfg";
|
||||||
static const char* menu_cfg = "menu.cfg";
|
static const char* menu_cfg = "menu.cfg";
|
||||||
static const char* syslinux_cfg[] = { "isolinux.cfg", "syslinux.cfg", "txt.cfg", "extlinux.conf" };
|
// NB: Do not alter the order of the array below without validating hardcoded indexes in check_iso_props
|
||||||
|
static const char* syslinux_cfg[] = { "isolinux.cfg", "syslinux.cfg", "extlinux.conf", "txt.cfg" };
|
||||||
static const char* isolinux_bin[] = { "isolinux.bin", "boot.bin" };
|
static const char* isolinux_bin[] = { "isolinux.bin", "boot.bin" };
|
||||||
static const char* pe_dirname[] = { "/i386", "/amd64", "/minint" };
|
static const char* pe_dirname[] = { "/i386", "/amd64", "/minint" };
|
||||||
static const char* pe_file[] = { "ntdetect.com", "setupldr.bin", "txtsetup.sif" };
|
static const char* pe_file[] = { "ntdetect.com", "setupldr.bin", "txtsetup.sif" };
|
||||||
|
@ -151,19 +152,23 @@ static BOOL check_iso_props(const char* psz_dirname, int64_t file_length, const
|
||||||
const char* psz_fullpath, EXTRACT_PROPS *props)
|
const char* psz_fullpath, EXTRACT_PROPS *props)
|
||||||
{
|
{
|
||||||
size_t i, j, len;
|
size_t i, j, len;
|
||||||
|
|
||||||
// Check for an isolinux/syslinux config file anywhere
|
// Check for an isolinux/syslinux config file anywhere
|
||||||
memset(props, 0, sizeof(EXTRACT_PROPS));
|
memset(props, 0, sizeof(EXTRACT_PROPS));
|
||||||
for (i=0; i<ARRAYSIZE(syslinux_cfg); i++) {
|
for (i = 0; i < ARRAYSIZE(syslinux_cfg); i++) {
|
||||||
if (safe_stricmp(psz_basename, syslinux_cfg[i]) == 0) {
|
if (safe_stricmp(psz_basename, syslinux_cfg[i]) == 0) {
|
||||||
props->is_cfg = TRUE; // Required for "extlinux.conf"
|
props->is_cfg = TRUE; // Required for "extlinux.conf"
|
||||||
props->is_syslinux_cfg = TRUE;
|
props->is_syslinux_cfg = TRUE;
|
||||||
|
// Maintain a list of all the isolinux/syslinux config files identified so far
|
||||||
|
if ((scan_only) && (i < 3))
|
||||||
|
StrArrayAdd(&config_path, psz_fullpath, TRUE);
|
||||||
if ((scan_only) && (i == 1) && (safe_stricmp(psz_dirname, efi_dirname) == 0))
|
if ((scan_only) && (i == 1) && (safe_stricmp(psz_dirname, efi_dirname) == 0))
|
||||||
img_report.has_efi_syslinux = TRUE;
|
img_report.has_efi_syslinux = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for an old incompatible c32 file anywhere
|
// Check for an old incompatible c32 file anywhere
|
||||||
for (i=0; i<NB_OLD_C32; i++) {
|
for (i = 0; i < NB_OLD_C32; i++) {
|
||||||
if ((safe_stricmp(psz_basename, old_c32_name[i]) == 0) && (file_length <= old_c32_threshold[i]))
|
if ((safe_stricmp(psz_basename, old_c32_name[i]) == 0) && (file_length <= old_c32_threshold[i]))
|
||||||
props->is_old_c32[i] = TRUE;
|
props->is_old_c32[i] = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -262,10 +267,6 @@ static BOOL check_iso_props(const char* psz_dirname, int64_t file_length, const
|
||||||
if (safe_stricmp(psz_basename, pe_file[j]) == 0)
|
if (safe_stricmp(psz_basename, pe_file[j]) == 0)
|
||||||
img_report.winpe |= (1<<j)<<(ARRAYSIZE(pe_dirname)*i);
|
img_report.winpe |= (1<<j)<<(ARRAYSIZE(pe_dirname)*i);
|
||||||
|
|
||||||
if (props->is_syslinux_cfg) {
|
|
||||||
// Maintain a list of all the isolinux/syslinux configs identified so far
|
|
||||||
StrArrayAdd(&config_path, psz_fullpath, TRUE);
|
|
||||||
}
|
|
||||||
for (i=0; i<ARRAYSIZE(isolinux_bin); i++) {
|
for (i=0; i<ARRAYSIZE(isolinux_bin); i++) {
|
||||||
if (safe_stricmp(psz_basename, isolinux_bin[i]) == 0) {
|
if (safe_stricmp(psz_basename, isolinux_bin[i]) == 0) {
|
||||||
// Maintain a list of all the isolinux.bin files found
|
// Maintain a list of all the isolinux.bin files found
|
||||||
|
@ -1007,7 +1008,7 @@ out:
|
||||||
fprintf(fd, " APPEND %s/\n", img_report.cfg_path);
|
fprintf(fd, " APPEND %s/\n", img_report.cfg_path);
|
||||||
img_report.cfg_path[i] = '/';
|
img_report.cfg_path[i] = '/';
|
||||||
}
|
}
|
||||||
uprintf("Created: %s", path);
|
uprintf("Created: %s → %s", path, img_report.cfg_path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (fd != NULL)
|
if (fd != NULL)
|
||||||
|
|
10
src/rufus.rc
10
src/rufus.rc
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_ACCEPTFILES
|
EXSTYLE WS_EX_ACCEPTFILES
|
||||||
CAPTION "Rufus 3.8.1577"
|
CAPTION "Rufus 3.8.1578"
|
||||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||||
|
@ -394,8 +394,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 3,8,1577,0
|
FILEVERSION 3,8,1578,0
|
||||||
PRODUCTVERSION 3,8,1577,0
|
PRODUCTVERSION 3,8,1578,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -413,13 +413,13 @@ BEGIN
|
||||||
VALUE "Comments", "https://rufus.ie"
|
VALUE "Comments", "https://rufus.ie"
|
||||||
VALUE "CompanyName", "Akeo Consulting"
|
VALUE "CompanyName", "Akeo Consulting"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "3.8.1577"
|
VALUE "FileVersion", "3.8.1578"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2019 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2019 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
|
||||||
VALUE "OriginalFilename", "rufus-3.8.exe"
|
VALUE "OriginalFilename", "rufus-3.8.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "3.8.1577"
|
VALUE "ProductVersion", "3.8.1578"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
Loading…
Reference in a new issue