800bc2ec4d548b450cd21f0bd8bd5b160a353607 max Mon Aug 17 02:32:06 2026 -0700 hgc: fix RetroGenes alignment crash from reading unset 'table' cart var retroShowCdnaAli() read a cart variable "table" that no code path sets; only "aliTable" is passed to the hgcRetroCdnaAli handler, so cartString() aborted with hashMustFindVal: 'table' not found. Use the aliTable value (already read into 'track') for mappingInfoNew(), the same table name retroClickHandler passes. refs #38114 diff --git src/hg/hgc/retroClick.c src/hg/hgc/retroClick.c index 5497a4db95c..ff4c9ccb824 100644 --- src/hg/hgc/retroClick.c +++ src/hg/hgc/retroClick.c @@ -783,35 +783,34 @@ sqlSafef(query, sizeof(query), "select * from %s where qName = '%s' and tStart = %d", table, mi->pg->name, start); sr = sqlMustGetResult(conn, query); row = sqlNextRow(sr); psl = pslLoad(row+hasBin); sqlFreeResult(&sr); return psl; } void retroShowCdnaAli(char *mappedId) /* Show alignment for accession, mostly ripped off from htcCdnaAli */ { char *track = cartString(cart, "aliTable"); struct trackDb *tdb = hashMustFindVal(trackHash, track); -char *table = cartString(cart, "table"); int start = cartInt(cart, "o"); struct sqlConnection *conn = hAllocConn(database); struct sqlConnection *defDbConn = NULL; -struct mappingInfo *mi = mappingInfoNew(conn, table, mappedId); +struct mappingInfo *mi = mappingInfoNew(conn, track, mappedId); struct genbankCds cds = getCds(conn, mi); struct psl *psl; struct dnaSeq *rnaSeq = NULL; char *spec = trackDbRequiredSetting(tdb, BASE_COLOR_USE_SEQUENCE); char *specCopy = cloneString(spec); char *words[3]; int nwords = chopByWhite(specCopy, words, ArraySize(words)); char acc[512]; char title[1024]; safef(title, sizeof title, "%s vs Genomic [%s]", mi->seqId, track); alnModernStart(title); /* Look up alignment and sequence in database. Always get sequence