src/hg/lib/hdb.c 1.406

1.406 2009/07/14 19:49:29 markd
generate useful error message when there is a huge chromosome name, most likely caused by an invalid table name
Index: src/hg/lib/hdb.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hdb.c,v
retrieving revision 1.405
retrieving revision 1.406
diff -b -B -U 4 -r1.405 -r1.406
--- src/hg/lib/hdb.c	9 Jul 2009 04:13:05 -0000	1.405
+++ src/hg/lib/hdb.c	14 Jul 2009 19:49:29 -0000	1.406
@@ -831,9 +831,13 @@
     {
     char *ptr = strrchr(table, '_');
     if (ptr != NULL)
 	{
-	safencpy(chrom, HDB_MAX_CHROM_STRING, table, (ptr-table));
+        int chromLen = ptr - table;
+        if (chromLen >= HDB_MAX_CHROM_STRING)
+            errAbort("invalid chromosome name \"%.*s\", extracted from track name \"%s\"; position track table names may not contain a \"_\" character",
+                     chromLen, table, table);
+	safencpy(chrom, HDB_MAX_CHROM_STRING, table, chromLen);
 	safecpy(trackName, HDB_MAX_TABLE_STRING, ptr+1);
 	}
     }
 }