From bedea83cee34da4a8457a461bc40f7cda7d7b372 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Wed, 20 Jul 2022 12:21:32 -0400 Subject: [PATCH] Fix crash when ref tile is dropped due to duplicate tag. refs #19236 Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- slicenumpy.go | 3 +++ tilelib.go | 2 ++ 2 files changed, 5 insertions(+) diff --git a/slicenumpy.go b/slicenumpy.go index 1322b91544..d4e48b3a25 100644 --- a/slicenumpy.go +++ b/slicenumpy.go @@ -622,6 +622,9 @@ func (cmd *sliceNumpy) RunCommand(prog string, args []string, stdin io.Reader, s endtagstr := strings.ToUpper(string(tv.Sequence[len(tv.Sequence)-taglen:])) for i, rt := 0, rt; i < annotationMaxTileSpan && !strings.HasSuffix(reftilestr, endtagstr) && rt.nexttag >= 0; i++ { rt = reftile[rt.nexttag] + if rt == nil { + break + } reftilestr += strings.ToUpper(string(rt.tiledata[taglen:])) } if mask != nil && !mask.Check(strings.TrimPrefix(rt.seqname, "chr"), rt.pos, rt.pos+len(reftilestr)) { diff --git a/tilelib.go b/tilelib.go index df6cb73b3b..b6dc367120 100644 --- a/tilelib.go +++ b/tilelib.go @@ -572,6 +572,8 @@ func (tilelib *tileLibrary) TileFasta(filelabel string, rdr io.Reader, matchChro todo <- jobT{seqlabel, append([]byte(nil), fasta...)} seqlabel, fasta = strings.SplitN(string(buf[1:]), " ", 2)[0], fasta[:0] log.Debugf("%s %s reading fasta", filelabel, seqlabel) + } else if len(buf) > 0 && buf[0] == '#' { + // ignore testdata comment } else { fasta = append(fasta, bytes.ToLower(buf)...) } -- 2.30.2