[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.
This commit is contained in:
Pete Batard 2018-05-27 21:46:34 +01:00
parent 6451a090f3
commit add0e156df
4 changed files with 12 additions and 28 deletions

View File

@ -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

View File

@ -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;

View File

@ -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 */

View File

@ -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"