fd59292a0d003980626abe2b31de187cd199ce3b
braney
  Tue Jul 22 11:02:04 2025 -0700
fix a memory trashing bug

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 166b6a0e772..14541873cbf 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -2638,31 +2638,31 @@
 return hDbDbField(database, "defaultPos");
 }
 
 char *hOrganism(char *database)
 /* Return organism associated with database.   use freeMem on
  * this when done. */
 {
 if (database == NULL)
     return NULL;
 if (sameString(database, "rep"))    /* bypass dbDb if repeat */
     return cloneString("Repeat");
 if (startsWith("GC", database))
     {
     struct dbDb *dbDb = genarkLiftOverDb(database);
     if (dbDb != NULL)
-        return dbDb->genome;
+        return cloneString(dbDb->genome);
     }
 
 return hDbDbOptionalField(database, "organism");
 }
 
 char *hDbDbNibPath(char *database)
 /* return nibPath from dbDb for database, has to be freed */
 {
 char* seqDir = NULL;
 bool useNib = cfgOptionBooleanDefault("allowNib", TRUE);
 if (useNib)
     seqDir = hDbDbOptionalField(database, "nibPath");
 else
     {
     char buf[4096];
@@ -2671,31 +2671,31 @@
     seqDir = twoBitDir;
     }
 return seqDir;
 }
 
 char *hGenome(char *database)
 /* Return genome associated with database.
  * use freeMem on this when done. */
 {
 if (database == NULL)
     return NULL;
 if (startsWith("GC", database))
     {
     struct dbDb *dbDb = genarkLiftOverDb(database);
     if (dbDb != NULL)
-        return dbDb->genome;
+        return cloneString(dbDb->genome);
     }
 return hDbDbOptionalField(database, "genome");
 }
 
 char *hScientificName(char *database)
 /* Return scientific name for organism represented by this database */
 /* Return NULL if unknown database */
 /* NOTE: must free returned string after use */
 {
 return hDbDbOptionalField(database, "scientificName");
 }
 
 char *hOrgShortName(char *org)
 /* Get the short name for an organism.  Returns NULL if org is NULL.
  * WARNING: static return */