From add0e156dfea3bcfa57c3b9cc33b147cdf15285b Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Sun, 27 May 2018 21:46:34 +0100 Subject: [PATCH] [iso] better fix for processing of openSUSE Leap ISOs * From the discussion on the libcdio mailing list, and simplified since the only archs we support are little-endian. --- ChangeLog.txt | 3 ++- src/libcdio/cdio/bytesex.h | 10 +--------- src/libcdio/iso9660/iso9660_fs.c | 17 ++++------------- src/rufus.rc | 10 +++++----- 4 files changed, 12 insertions(+), 28 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 62a096a9..8456b1b6 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -2,9 +2,10 @@ o Version 3.0 (2018.??.??) UI redesign to follow the flow of user operations (with thanks to Fahad Al-Riyami for the concept) Drop XP and Vista platform support Switch all downloads to SSL and use https://rufus.ie as the new base URL - Improve support of efi.img files on Linux ISOs Add ARM64 support for UEFI:NTFS Fix delays when querying floppy drives during device enumeration + Improve support of efi.img files on Linux ISOs + Improve support for non-ISO9660 compliant openSUSE Leap ISOs Improve translation support and remove manual positioning Internal fixes and improvements diff --git a/src/libcdio/cdio/bytesex.h b/src/libcdio/cdio/bytesex.h index 2292ded1..df8ba508 100644 --- a/src/libcdio/cdio/bytesex.h +++ b/src/libcdio/cdio/bytesex.h @@ -171,9 +171,6 @@ to_723(uint16_t i) static CDIO_INLINE uint16_t from_723 (uint32_t p) { - if (uint32_swap_le_be (p) != p) - cdio_warn ("from_723: broken byte order"); - return (0xFFFF & p); } @@ -200,10 +197,6 @@ to_733(uint32_t i) static CDIO_INLINE uint32_t from_733 (uint64_t p) { -// Commented out for Rufus -// if (uint64_swap_le_be (p) != p) -// cdio_warn ("from_733: broken byte order"); - return (UINT32_C(0xFFFFFFFF) & p); } @@ -211,8 +204,7 @@ static CDIO_INLINE uint32_t from_733_with_err (uint64_t p, bool *err) { if (uint64_swap_le_be (p) != p) { -// Commented out for Rufus -// cdio_warn ("from_733: broken byte order"); + cdio_warn ("from_733: broken byte order"); *err = true; } else { *err = false; diff --git a/src/libcdio/iso9660/iso9660_fs.c b/src/libcdio/iso9660/iso9660_fs.c index b9c23e78..946a23ed 100644 --- a/src/libcdio/iso9660/iso9660_fs.c +++ b/src/libcdio/iso9660/iso9660_fs.c @@ -717,7 +717,6 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, iso711_t i_fname; unsigned int stat_len; iso9660_stat_t *p_stat = last_p_stat; - bool err; char rr_fname[256] = ""; int i_rr_fname; @@ -738,17 +737,9 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, } p_stat->type = (p_iso9660_dir->file_flags & ISO_DIRECTORY) ? _STAT_DIR : _STAT_FILE; - p_stat->lsn[p_stat->extents] = from_733_with_err (p_iso9660_dir->extent, &err); - if (err) { - free(p_stat); - return NULL; - } - p_stat->size[p_stat->extents] = from_733_with_err (p_iso9660_dir->size, &err); + p_stat->lsn[p_stat->extents] = from_733 (p_iso9660_dir->extent); + p_stat->size[p_stat->extents] = from_733 (p_iso9660_dir->size); p_stat->total_size += p_stat->size[p_stat->extents]; - if (err) { - free(p_stat); - return NULL; - } p_stat->secsize[p_stat->extents] = _cdio_len2blocks (p_stat->size[p_stat->extents], ISO_BLOCKSIZE); p_stat->rr.b3_rock = dunno; /*FIXME should do based on mask */ p_stat->b_xa = false; @@ -1123,8 +1114,8 @@ _fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root, if (!p_stat) { cdio_warn("Bad directory information for %s", splitpath[0]); - // Patched for Rufus - Don't bail out on this - continue; + free(_dirbuf); + return NULL; } /* If we have multiextent file parts, loop until the last one */ diff --git a/src/rufus.rc b/src/rufus.rc index 4efbd628..c8782777 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 232, 326 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_ACCEPTFILES -CAPTION "Rufus 3.0.1299" +CAPTION "Rufus 3.0.1300" FONT 9, "Segoe UI Symbol", 400, 0, 0x0 BEGIN LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP @@ -389,8 +389,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,0,1299,0 - PRODUCTVERSION 3,0,1299,0 + FILEVERSION 3,0,1300,0 + PRODUCTVERSION 3,0,1300,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -407,13 +407,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "3.0.1299" + VALUE "FileVersion", "3.0.1300" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2018 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "3.0.1299" + VALUE "ProductVersion", "3.0.1300" END END BLOCK "VarFileInfo"