080a160c7b9595d516c9c70e83689a09b60839d0 galt Mon Jun 3 12:16:53 2013 -0700 fix SQL Injection diff --git src/hg/hgc/expClick.c src/hg/hgc/expClick.c index 6b38f73..5756422 100644 --- src/hg/hgc/expClick.c +++ src/hg/hgc/expClick.c @@ -232,51 +232,51 @@ } sqlFreeResult(&sr); hFreeConn(&conn); slReverse(&bedList); return bedList; } static struct bed * loadMsBedAll(char *table) /* load every thing from a bed 15 table */ { struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr; char **row; struct bed *bedList = NULL, *bed; char query[512]; -sprintf(query, "select * from %s", table); +sqlSafef(query, sizeof query, "select * from %s", table); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { bed = bedLoadN(row, 15); slAddHead(&bedList, bed); } sqlFreeResult(&sr); hFreeConn(&conn); slReverse(&bedList); return bedList; } static struct expRecord * loadExpRecord(char *table, char *database) /* load everything from an expRecord table in the specified database, usually hgFixed instead of hg7, hg8, etc. */ { struct sqlConnection *conn = sqlConnect(database); char query[256]; struct expRecord *erList = NULL; -snprintf(query, sizeof(query), "select * from %s", table); +sqlSafef(query, sizeof(query), "select * from %s", table); erList = expRecordLoadByQuery(conn, query); sqlDisconnect(&conn); return erList; } void getMsBedExpDetails(struct trackDb *tdb, char *expName, boolean all) /* Create tab-delimited output to download */ { char *expTable = cartString(cart, "i"); char *bedTable = cartString(cart, "o"); struct expRecord *er, *erList=NULL; struct bed *b, *bedList=NULL; int i; /* Get all of the expression record details */