40c5c9724249bdff5eb8333acef141f20eaf7a1c markd Tue Sep 4 16:02:12 2018 -0700 fixed segv when parsing invalid GFF3 header diff --git src/lib/gff3.c src/lib/gff3.c index 6250739..6b8179b 100644 --- src/lib/gff3.c +++ src/lib/gff3.c @@ -879,31 +879,31 @@ /* parse one line of a gff3 file */ { if (startsWith("##", line)) parseMeta(g3f, line); else if (!startsWith("#", line) && (strlen(line) > 0)) parseAnn(g3f, line); } static void parseHeader(struct gff3File *g3f) /* parse and validate a GFF3 header */ { char *line; if (!lineFileNext(g3f->lf, &line, NULL)) gff3FileErr(g3f, FALSE, "empty GFF file, must have header"); char *ver = skipToSpaces(line); -if (*ver != '\0') +if ((ver != NULL) && (*ver != '\0')) { *ver++ = '\0'; ver = trimSpaces(ver); } if (!(sameString(line, "##gff-version") && sameString(ver, "3"))) gff3FileErr(g3f, TRUE, "invalid GFF3 header"); } static void parseFile(struct gff3File *g3f) /* do parsing phase of reading a GFF3 file */ { g3f->lf = lineFileOpen(g3f->fileName, TRUE); parseHeader(g3f); char *line; while (lineFileNext(g3f->lf, &line, NULL))