From 43276e5bd1bac187089db5bc850a9366c1581f0c Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Wed, 27 May 2009 01:30:29 +0000 Subject: [PATCH] If we encounter an unsupported entry (like a relocated directory) we now just skip it instead of returning the error and therefore aborting the directory enumeration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30876 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/iso9660/iso9660.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp b/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp index d9f33044c9..cae18a4632 100644 --- a/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp +++ b/src/add-ons/kernel/file_systems/iso9660/iso9660.cpp @@ -730,10 +730,12 @@ ISOReadDirEnt(iso9660_volume *volume, dircookie *cookie, struct dirent *dirent, size_t bytesRead = 0; result = InitNode(&node, blockData + cookie->pos, &bytesRead, volume->joliet_level); - if (result != B_OK) + + // if we hit an entry that we don't support, we just skip it + if (result != B_OK && result != B_NOT_SUPPORTED) break; - if ((node.flags & ISO_IS_ASSOCIATED_FILE) == 0) { + if (result == B_OK && (node.flags & ISO_IS_ASSOCIATED_FILE) == 0) { size_t nameBufferSize = bufferSize - sizeof(struct dirent); dirent->d_dev = volume->id;