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);
}
}
}