diff --git a/regidx.c b/regidx.c index 40d909896..3aeed6799 100644 --- a/regidx.c +++ b/regidx.c @@ -289,6 +289,7 @@ regidx_t *regidx_init(const char *fname, regidx_parse_f parser, regidx_free_f fr } free(str.s); + str.s = NULL; if ( hts_close(fp)!=0 ) { fprintf(stderr,"[%s] Error: close failed .. %s\n", __func__,fname); @@ -441,7 +442,7 @@ int regidx_overlap(regidx_t *regidx, const char *chr, uint32_t beg, uint32_t end if ( !i ) { int iend = iBIN(end); - if ( iend > list->nidx ) iend = list->nidx; + if ( iend >= list->nidx ) iend = list->nidx - 1; for (i=ibeg; i<=iend; i++) if ( list->idx[i] ) break; if ( i>iend ) return 0;