282c37a5f6db8b7704e1d0f3617f55f38b8aea70
hiram
  Fri Apr 19 15:27:08 2019 -0700
more error testing for illegal inputs refs #18869

diff --git src/hg/hubApi/getData.c src/hg/hubApi/getData.c
index 10e9cec..ad7adab 100644
--- src/hg/hubApi/getData.c
+++ src/hg/hubApi/getData.c
@@ -651,30 +651,33 @@
 if (NULL == thisTrack)
     apiErrAbort(err400, err400Msg, "can not find track=%s name for endpoint '/getData/track", track);
 
 /* might be a big* track with no table */
 char *bigDataUrl = trackDbSetting(thisTrack, "bigDataUrl");
 boolean tableTrack = TRUE;
 
 /* might have a specific table defined instead of the track name */
 char *tableName = trackDbSetting(thisTrack, "table");
 if (isNotEmpty(tableName))
     {
     freeMem(sqlTable);
     sqlTable = cloneString(tableName);
     }
 
+/* database existence has already been checked before now, might
+ * have disappeared in the mean time
+ */
 struct sqlConnection *conn = hAllocConnMaybe(db);
 if (NULL == conn)
     apiErrAbort(err400, err400Msg, "can not find database 'db=%s' for endpoint '/getData/track", db);
 
 struct hTableInfo *hti = hFindTableInfoWithConn(conn, NULL, sqlTable);
 
 char *splitSqlTable = NULL;
 
 if (hti && hti->isSplit)
     {
     if (isNotEmpty(chrom))
 	{
 	char fullTableName[256];
 	safef(fullTableName, sizeof(fullTableName), "%s_%s", chrom, hti->rootName);
 	splitSqlTable = cloneString(fullTableName);
@@ -941,21 +944,22 @@
     {
     if (isNotEmpty(hubUrl))
 	getHubTrackData(hubUrl);
     else
 	getTrackData();
     }
 else if (sameWord("sequence", words[1]))
     {
     if (isNotEmpty(hubUrl))
 	getHubSequenceData(hubUrl);
     else
 	{
 	char *db = cgiOptionalString("db");
 	if (isEmpty(db))
 	    apiErrAbort(err400, err400Msg, "missing URL db=<ucscDb> name for endpoint '/getData/sequence");
+	/* existence of db has already been proven before getting here */
 	getSequenceData(db, NULL);
 	}
     }
 else
     apiErrAbort(err400, err400Msg, "do not recognize endpoint function: '/%s/%s'", words[0], words[1]);
 }