X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam_md.c;h=fb4673263044cd80831288a1b7a286ec62486d14;hb=221f82f662dd770a17d1bd2181de46b8c3b3fdfd;hp=a4f4e01ce2672556746c399af379a325b61273af;hpb=cac5f70d5bc208e7699f5b8e72ebd120d41a28ea;p=samtools.git diff --git a/bam_md.c b/bam_md.c index a4f4e01..fb46732 100644 --- a/bam_md.c +++ b/bam_md.c @@ -150,8 +150,10 @@ int bam_realn(bam1_t *b, const char *ref) kroundup32(b->m_data); b->data = realloc(b->data, b->m_data); } - if (n_cigar != (int)c->n_cigar) // move data - memmove(b->data + c->l_qname + 4 * n_cigar, bam1_seq(b), b->data_len - c->l_qseq - 4 * c->n_cigar); + if (n_cigar != (int)c->n_cigar) { // move data + memmove(b->data + c->l_qname + 4 * n_cigar, bam1_seq(b), b->data_len - c->l_qname - 4 * c->n_cigar); + b->data_len += 4 * (n_cigar - (int)c->n_cigar); + } memcpy(bam1_cigar(b), cigar, n_cigar * 4); c->n_cigar = n_cigar; free(s_ref); free(s_read); free(cigar);