69561304c78fd41eb0f50fce9018c88b355dcc72 galt Wed Jun 19 14:12:47 2013 -0700 fixes errors about: multiple occurrences of NOSQLINJ; and buffer overflow, size 32; in hgTracks found with bac end pairs track diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 47df481..01cb5aa 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -3652,46 +3652,46 @@ lfs->features = lfList; lfs->noLine = FALSE; return lfs; } struct linkedFeatures *lfFromBed(struct bed *bed) { return lfFromBedExtra(bed, 0, 1000); } struct linkedFeaturesSeries *lfsFromBed(struct lfs *lfsbed) /* Create linked feature series object from database bed record */ { struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr = NULL; -char **row, rest[32]; +char **row, rest[64]; int rowOffset, i; struct linkedFeaturesSeries *lfs; struct linkedFeatures *lfList = NULL, *lf; AllocVar(lfs); lfs->name = cloneString(lfsbed->name); lfs->start = lfsbed->chromStart; lfs->end = lfsbed->chromEnd; lfs->orientation = orientFromChar(lfsbed->strand[0]); /* Get linked features */ for (i = 0; i < lfsbed->lfCount; i++) { AllocVar(lf); - sqlSafef(rest, sizeof rest, "qName = '%s'", lfsbed->lfNames[i]); + sqlSafefFrag(rest, sizeof rest, "qName = '%s'", lfsbed->lfNames[i]); sr = hRangeQuery(conn, lfsbed->pslTable, lfsbed->chrom, lfsbed->lfStarts[i], lfsbed->lfStarts[i] + lfsbed->lfSizes[i], rest, &rowOffset); if ((row = sqlNextRow(sr)) != NULL) { struct psl *psl = pslLoad(row+rowOffset); lf = lfFromPsl(psl, FALSE); slAddHead(&lfList, lf); } sqlFreeResult(&sr); } slReverse(&lfList); sqlFreeResult(&sr); hFreeConn(&conn); lfs->features = lfList; return lfs;