diff --git a/tools/logicalimager/FileExtractor.cpp b/tools/logicalimager/FileExtractor.cpp
index 33e74de138976435fce85216c715a043ab045763..5434c93f668638df68d7292cb31af58c309c378a 100644
--- a/tools/logicalimager/FileExtractor.cpp
+++ b/tools/logicalimager/FileExtractor.cpp
@@ -87,11 +87,13 @@ TSK_RETVAL_ENUM FileExtractor::extractFile(TSK_FS_FILE *fs_file, const char *pat
             if (fs_file->meta) {
                 if (fs_file->meta->size == 0) {
                     // ts_fs_file_read returns -1 with empty files, don't report it.
-                    return TSK_OK;
+                    result = TSK_OK;
+                    break;
                 }
                 else if (fs_file->meta->flags & TSK_FS_NAME_FLAG_UNALLOC) {
                     // don't report it
-                    return TSK_ERR;
+                    result = TSK_ERR;
+                    break;
                 }
                 else {
                     ReportUtil::printDebug("extractFile: tsk_fs_file_read returns -1 filename=%s\toffset=%" PRIxOFF "\n", fs_file->name->name, offset);