Skip to content

Commit

Permalink
Do some minimal validation of MM and ML tags. Fixes #1305
Browse files Browse the repository at this point in the history
  • Loading branch information
jrobinso committed Jul 13, 2023
1 parent 9b4a0d6 commit d728e12
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions src/main/java/org/broad/igv/sam/SAMAlignment.java
Original file line number Diff line number Diff line change
Expand Up @@ -330,12 +330,17 @@ public List<BaseModificationSet> getBaseModificationSets() {

Object mm = record.hasAttribute("Mm") ? record.getAttribute("Mm") : record.getAttribute("MM");
byte[] ml = (byte[]) (record.hasAttribute("Ml") ? record.getAttribute("Ml") : record.getAttribute("ML"));
byte[] sequence = record.getReadBases();

if (mm.toString().length() == 0) { // TODO -- more extensive validation?
baseModificationSets = Collections.EMPTY_LIST;
} else {
baseModificationSets = BaseModificationUtils.getBaseModificationSets(mm.toString(), ml, sequence, isNegativeStrand());
// Minimal tag validation
if(mm instanceof String && (ml == null || ml instanceof byte [])) {

byte[] sequence = record.getReadBases();

if (mm.toString().length() == 0) { // TODO -- more extensive validation?
baseModificationSets = Collections.EMPTY_LIST;
} else {
baseModificationSets = BaseModificationUtils.getBaseModificationSets((String) mm, ml, sequence, isNegativeStrand());
}
}
}
return baseModificationSets;
Expand Down

0 comments on commit d728e12

Please sign in to comment.