Changeset 94279 in vbox for trunk/src/VBox/Runtime/common/fs
- Timestamp:
- Mar 17, 2022 1:34:09 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 150543
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/fs/isomakerimport.cpp
r93350 r94279 179 179 /** Symlink target name buffer for rock ridge. */ 180 180 char szRockSymlinkTargetBuf[_2K]; 181 /** A buffer for reading rock ridge continuation blocks into 181 /** A buffer for reading rock ridge continuation blocks into. */ 182 182 uint8_t abRockBuf[ISO9660_SECTOR_SIZE]; 183 183 /** @} */ … … 641 641 RT_NOREF(pObjInfo); 642 642 643 /*644 * Do skipping if specified.645 */646 if (pThis->offSuspSkip)647 {648 if (cbSys <= pThis->offSuspSkip)649 return;650 pbSys += pThis->offSuspSkip;651 cbSys -= pThis->offSuspSkip;652 }653 654 643 while (cbSys >= 4) 655 644 { … … 658 647 */ 659 648 PCISO9660SUSPUNION pUnion = (PCISO9660SUSPUNION)pbSys; 660 if (pUnion->Hdr.cbEntry > cbSys) 649 if ( pUnion->Hdr.cbEntry > cbSys 650 && pUnion->Hdr.cbEntry < sizeof(pUnion->Hdr)) 661 651 { 662 652 LogRel(("rtFsIsoImportProcessIso9660TreeWorkerParseRockRidge: cbEntry=%#x cbSys=%#x (%#x %#x)\n", … … 1014 1004 1015 1005 /* Purge the encoding as we don't want invalid UTF-8 floating around. */ 1006 /** @todo do this afterwards as needed. */ 1016 1007 RTStrPurgeEncoding(pThis->szRockSymlinkTargetBuf); 1017 1008 } … … 1036 1027 if (pUnion->NM.fFlags & (ISO9660RRIP_NM_F_CURRENT | ISO9660RRIP_NM_F_PARENT)) 1037 1028 { 1038 if (cchName == 0 && pThis->szRockNameBuf[0] == '\0')1029 if (cchName == 0) 1039 1030 Log(("rtFsIsoImport/Rock: Ignoring 'NM' entry for '.' and '..'\n")); 1040 1031 else … … 1053 1044 1054 1045 /* Purge the encoding as we don't want invalid UTF-8 floating around. */ 1055 RTStrPurgeEncoding(pThis->szRockSymlinkTargetBuf); 1046 /** @todo do this afterwards as needed. */ 1047 RTStrPurgeEncoding(pThis->szRockNameBuf); 1056 1048 } 1057 1049 else … … 1483 1475 pThis->szRockNameBuf[0] = '\0'; 1484 1476 pThis->szRockSymlinkTargetBuf[0] = '\0'; 1485 if (cbSys > 0 && !(pThis->fFlags & RTFSISOMK_IMPORT_F_NO_ROCK_RIDGE)) 1477 if ( cbSys > pThis->offSuspSkip 1478 && !(pThis->fFlags & RTFSISOMK_IMPORT_F_NO_ROCK_RIDGE)) 1486 1479 { 1487 1480 pThis->fSeenLastNM = false; … … 1489 1482 pThis->szRockNameBuf[0] = '\0'; 1490 1483 pThis->szRockSymlinkTargetBuf[0] = '\0'; 1491 rtFsIsoImportProcessIso9660TreeWorkerParseRockRidge(pThis, &ObjInfo, pbSys, cbSys, fUnicode, 1484 rtFsIsoImportProcessIso9660TreeWorkerParseRockRidge(pThis, &ObjInfo, &pbSys[pThis->offSuspSkip], 1485 cbSys - pThis->offSuspSkip, fUnicode, 1492 1486 false /*fContinuationRecord*/, false /*fIsFirstDirRec*/); 1493 1487 }
Note:
See TracChangeset
for help on using the changeset viewer.