From 41e8ac7d52be6b69c8b2792f4a66a2956a1c6f22 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Wed, 18 Jan 2012 13:25:53 +0000 Subject: [PATCH] [iso9660] remove warnings about directory size mismatch * also minor improvements to iso.c --- src/iso.c | 10 ++++++++-- src/libcdio/iso9660/iso9660_fs.c | 28 ---------------------------- src/rufus.rc | 12 ++++++------ 3 files changed, 14 insertions(+), 36 deletions(-) diff --git a/src/iso.c b/src/iso.c index a10f07f3..1145b419 100644 --- a/src/iso.c +++ b/src/iso.c @@ -86,22 +86,27 @@ static void udf_list_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const char static void iso_list_files(iso9660_t* p_iso, const char *psz_path) { - int i = 0; char filename[4096], *p; CdioListNode_t* p_entnode; iso9660_stat_t *p_statbuf; CdioList_t* p_entlist; + + if ( (p_iso == NULL) || (psz_path == NULL)) + return; + strncpy(filename, psz_path, 4094); p = &filename[strlen(psz_path)]; *p++ = '/'; *p = 0; p_entlist = iso9660_ifs_readdir(p_iso, psz_path); + if (!p_entlist) return; _CDIO_LIST_FOREACH (p_entnode, p_entlist) { p_statbuf = (iso9660_stat_t*) _cdio_list_node_data(p_entnode); - if (i++ < 2) + if ( (strcmp(p_statbuf->filename, ".") == 0) + || (strcmp(p_statbuf->filename, "..") == 0) ) continue; // Eliminate . and .. entries iso9660_name_translate(p_statbuf->filename, p); uprintf("%s [LSN %6d] %8u %s\n", (p_statbuf->type == _STAT_DIR)?"d":"-", @@ -227,6 +232,7 @@ int main(int argc, char** argv) { // ExtractISO("D:\\Incoming\\GRMSDKX_EN_DVD.iso", NULL); ExtractISO("D:\\fd11src.iso", NULL); +// ExtractISO("D:\\Incoming\\en_windows_driver_kit_3790.iso", NULL); // ExtractISO("D:\\Incoming\\en_windows_7_ultimate_with_sp1_x64_dvd_618240.iso", NULL); // ExtractISO("D:\\Incoming\\Windows 8 Preview\\WindowsDeveloperPreview-64bit-English-Developer.iso", NULL); diff --git a/src/libcdio/iso9660/iso9660_fs.c b/src/libcdio/iso9660/iso9660_fs.c index 916c60c9..8493b38c 100644 --- a/src/libcdio/iso9660/iso9660_fs.c +++ b/src/libcdio/iso9660/iso9660_fs.c @@ -987,13 +987,6 @@ _fs_stat_traverse (const CdIo_t *p_cdio, const iso9660_stat_t *_root, cdio_assert (_root->type == _STAT_DIR); - if (_root->size != ISO_BLOCKSIZE * _root->secsize) - { - cdio_warn ("bad size for ISO9660 directory (%ud) should be (%lu)!", - (unsigned) _root->size, - (unsigned long int) ISO_BLOCKSIZE * _root->secsize); - } - _dirbuf = calloc(1, _root->secsize * ISO_BLOCKSIZE); if (!_dirbuf) { @@ -1092,13 +1085,6 @@ _fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root, return NULL; cdio_assert (_root->type == _STAT_DIR); - - if (_root->size != ISO_BLOCKSIZE * _root->secsize) - { - cdio_warn ("bad size for ISO9660 directory (%ud) should be (%lu)!", - (unsigned) _root->size, - (unsigned long int) ISO_BLOCKSIZE * _root->secsize); - } _dirbuf = calloc(1, _root->secsize * ISO_BLOCKSIZE); if (!_dirbuf) @@ -1306,13 +1292,6 @@ iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2) uint8_t *_dirbuf = NULL; CdioList_t *retval = _cdio_list_new (); - if (p_stat->size != ISO_BLOCKSIZE * p_stat->secsize) - { - cdio_warn ("bad size for ISO9660 directory (%ud) should be (%lu)!", - (unsigned) p_stat->size, - (unsigned long int) ISO_BLOCKSIZE * p_stat->secsize); - } - _dirbuf = calloc(1, p_stat->secsize * ISO_BLOCKSIZE); if (!_dirbuf) { @@ -1377,13 +1356,6 @@ iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[]) uint8_t *_dirbuf = NULL; CdioList_t *retval = _cdio_list_new (); - if (p_stat->size != ISO_BLOCKSIZE * p_stat->secsize) - { - cdio_warn ("bad size for ISO9660 directory (%ud) should be (%lu)!", - (unsigned int) p_stat->size, - (unsigned long int) ISO_BLOCKSIZE * p_stat->secsize); - } - _dirbuf = calloc(1, p_stat->secsize * ISO_BLOCKSIZE); if (!_dirbuf) { diff --git a/src/rufus.rc b/src/rufus.rc index 805e2750..51c11d6a 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 278 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.0.7.136" +CAPTION "Rufus v1.0.7.137" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,236,50,14 @@ -70,7 +70,7 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,231,175,50,14,WS_GROUP CONTROL "http://rufus.akeo.ie",IDC_ABOUT_RUFUS_URL, "SysLink",WS_TABSTOP,46,47,114,9 - LTEXT "Version 1.0.7 (Build 136)",IDC_STATIC,46,19,78,8 + LTEXT "Version 1.0.7 (Build 137)",IDC_STATIC,46,19,78,8 PUSHBUTTON "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP EDITTEXT IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL LTEXT "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8 @@ -208,8 +208,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,7,136 - PRODUCTVERSION 1,0,7,136 + FILEVERSION 1,0,7,137 + PRODUCTVERSION 1,0,7,137 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -226,13 +226,13 @@ BEGIN BEGIN VALUE "CompanyName", "akeo.ie" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.0.7.136" + VALUE "FileVersion", "1.0.7.137" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.0.7.136" + VALUE "ProductVersion", "1.0.7.137" END END BLOCK "VarFileInfo"