From: Heng Li Date: Sat, 25 Apr 2009 10:49:40 +0000 (+0000) Subject: * samtools-0.1.3-6 (r244) X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=99a3d0d13f7668b26ec6b47b100ee6232d49d336;p=samtools.git * samtools-0.1.3-6 (r244) * fixed segfault for unmapped reads --- diff --git a/bam_md.c b/bam_md.c index a7d2ab4..9abff46 100644 --- a/bam_md.c +++ b/bam_md.c @@ -70,7 +70,7 @@ void bam_fillmd1(bam1_t *b, char *ref, int is_equal) int bam_fillmd(int argc, char *argv[]) { - int c, is_equal = 0, tid = -1, ret, len; + int c, is_equal = 0, tid = -2, ret, len; bamFile fp, fpout = 0; bam_header_t *header; faidx_t *fai; @@ -96,12 +96,14 @@ int bam_fillmd(int argc, char *argv[]) b = bam_init1(); while ((ret = bam_read1(fp, b)) >= 0) { - if (tid != b->core.tid) { - free(ref); - ref = fai_fetch(fai, header->target_name[b->core.tid], &len); - tid = b->core.tid; + if (b->core.tid >= 0) { + if (tid != b->core.tid) { + free(ref); + ref = fai_fetch(fai, header->target_name[b->core.tid], &len); + tid = b->core.tid; + } + bam_fillmd1(b, ref, is_equal); } - bam_fillmd1(b, ref, is_equal); bam_write1(fpout, b); } bam_destroy1(b); diff --git a/bamtk.c b/bamtk.c index fa256ae..aed8a39 100644 --- a/bamtk.c +++ b/bamtk.c @@ -3,7 +3,7 @@ #include "bam.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.1.3-5 (r243)" +#define PACKAGE_VERSION "0.1.3-6 (r244)" #endif int bam_taf2baf(int argc, char *argv[]); @@ -160,7 +160,7 @@ static int usage() fprintf(stderr, " index index alignment\n"); fprintf(stderr, " fixmate fix mate information\n"); fprintf(stderr, " rmdup remove PCR duplicates\n"); - fprintf(stderr, " glfview print GLFv2 file\n"); + fprintf(stderr, " glfview print GLFv3 file\n"); fprintf(stderr, " flagstat simple stats\n"); fprintf(stderr, " fillmd fill the MD tag and change identical base to =\n"); fprintf(stderr, "\n");