- 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);
+ }