message: prevent reading beyond end here
diff: @@ -106,6 +106,8 @@ SymbolTable *buildSymbolTable(Counters& counters, vector<u8*> line, size_t len[]
  u8* old = cur;
  counters.count1Inc(pos1);
  // count single symbol (i.e. an option is not extending it)
  + if (cur>=end)
  + break;
  if (st->symbols[pos1].length() != 1)
  counters.count1Inc(*cur);
  if (cur<end-7) {
  @@ -124,8 +126,6 @@ SymbolTable *buildSymbolTable(Counters& counters, vector<u8*> line, size_t len[]
  pos2 = st->byteCodes[word & 0xFF] & FSST_CODE_MASK;
  cur += 1;
  }
  - } else if (cur==end) {
  - break;
  } else {
  assert(cur<end);
  pos2 = st->findLongestSymbol(cur, end);
  