From b7076848abc65aa534b62171d9765cacc5b7c690 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Thu, 1 May 2014 15:30:36 -0400 Subject: [PATCH] r744: int overflow given MB query --- ksw.c | 4 ++-- main.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ksw.c b/ksw.c index 808bd3f..9793e5e 100644 --- a/ksw.c +++ b/ksw.c @@ -531,7 +531,7 @@ int ksw_global2(int qlen, const uint8_t *query, int tlen, const uint8_t *target, end = i + w + 1 < qlen? i + w + 1 : qlen; // only loop through [beg,end) of the query sequence h1 = beg == 0? -(o_del + e_del * (i + 1)) : MINUS_INF; if (n_cigar_ && cigar_) { - uint8_t *zi = &z[i * n_col]; + uint8_t *zi = &z[(long)i * n_col]; for (j = beg; LIKELY(j < end); ++j) { // At the beginning of the loop: eh[j] = { H(i-1,j-1), E(i,j) }, f = F(i,j) and h1 = H(i,j-1) // Cells are computed in the following order: @@ -590,7 +590,7 @@ int ksw_global2(int qlen, const uint8_t *query, int tlen, const uint8_t *target, uint32_t *cigar = 0, tmp; i = tlen - 1; k = (i + w + 1 < qlen? i + w + 1 : qlen) - 1; // (i,k) points to the last cell while (i >= 0 && k >= 0) { - which = z[i * n_col + (k - (i > w? i - w : 0))] >> (which<<1) & 3; + which = z[(long)i * n_col + (k - (i > w? i - w : 0))] >> (which<<1) & 3; if (which == 0) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 0, 1), --i, --k; else if (which == 1) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 2, 1), --i; else cigar = push_cigar(&n_cigar, &m_cigar, cigar, 1, 1), --k; diff --git a/main.c b/main.c index e902a0a..9028a19 100644 --- a/main.c +++ b/main.c @@ -4,7 +4,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.8-r742-dirty" +#define PACKAGE_VERSION "0.7.8-r744-dirty" #endif int bwa_fa2pac(int argc, char *argv[]);