b8fd0b0fa23324dcb600302cc2ce42e6a88d46e9 galt Wed Mar 2 18:33:03 2022 -0800 Fixing sql injection bug with sqlSafeFrag. Reported by NetSparker scan. diff --git src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c index 6a79f6c..f73f1e7 100644 --- src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c +++ src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c @@ -401,41 +401,41 @@ "
\n" "
\n"); puts(tdb->html); puts( "
\n" "
\n"); } static struct trackDb *getTrackDb(char *db, char *track) /* Check if this is an assembly with GTEx track and get trackDb */ { struct sqlConnection *conn = sqlConnect(db); if (conn == NULL) errAbort("Can't connect to database %s\n", db); char where[256]; -safef(where, sizeof(where), "tableName='%s'", track); +sqlSafefFrag(where, sizeof(where), "tableName='%s'", track); // WARNING: this will break in sandboxes unless trackDb entry is pushed to hgwdev. // The fix of using hTrackDbList() would slow for all users, so leaving as is. #define TRACKDB "trackDb" struct trackDb *tdb = trackDbLoadWhere(conn, TRACKDB, where); trackDbAddTableField(tdb); char *parent = trackDbLocalSetting(tdb, "parent"); struct trackDb *parentTdb; if (parent) { - safef(where, sizeof(where), "tableName='%s'", parent); + sqlSafefFrag(where, sizeof(where), "tableName='%s'", parent); parentTdb = trackDbLoadWhere(conn, TRACKDB, where); if (parentTdb) tdb->parent = parentTdb; } sqlDisconnect(&conn); return tdb; } static void doMiddle(struct cart *theCart) /* Send HTML with javascript to display the user interface. */ { cart = theCart; char *db = NULL, *genome = NULL, *clade = NULL; getDbGenomeClade(cart, &db, &genome, &clade, oldVars); database = db;