]> git.donarmstrong.com Git - samtools.git/blobdiff - sam_view.c
When bam_read1() returns an error (return value <= -2), propagate that error
[samtools.git] / sam_view.c
index 3b10e2e5372e98a2b9ebda4bd5791dc1b837a20f..41b651abbacd0aa69d04f94299b9b79680642d08 100644 (file)
@@ -164,7 +164,12 @@ int main_samview(int argc, char *argv[])
                                fprintf(stderr, "[main_samview] fail to get the reference name. Continue anyway.\n");
                                continue;
                        }
-                       bam_fetch(in->x.bam, idx, tid, beg, end, out, view_func); // fetch alignments
+                       // fetch alignments
+                       if (bam_fetch(in->x.bam, idx, tid, beg, end, out, view_func) < 0) {
+                               fprintf(stderr, "[main_samview] retrieval failed due to truncated file or corrupt BAM index file\n");
+                               ret = 1;
+                               break;
+                       }
                }
                bam_index_destroy(idx); // destroy the BAM index
        }