25284ab19efd690d46b5de7e83f089e4680422f0
jcasper
  Mon Oct 12 16:37:12 2015 -0700
Adding check to ensure we don't write off the end of the string (and into other memory)

diff --git src/hg/xmlToSql/xmlToSql.c src/hg/xmlToSql/xmlToSql.c
index fa7e3e8..d9eaecf 100644
--- src/hg/xmlToSql/xmlToSql.c
+++ src/hg/xmlToSql/xmlToSql.c
@@ -213,30 +213,31 @@
 	AllocVar(ref);
 	ref->field = field;
 	slAddHead(&table->parentKeys, ref);
 	}
     else
 	{
 	/* Need to handle association here. */
 	struct table *assocTable;
 	struct assocRef *ref;
 	char joinedName[256];
 	char *assocTableName;
 	int upperAt;
 	safef(joinedName, sizeof(joinedName), "%sTo%s", parentTable->name,
 	  table->name);
 	upperAt = strlen(parentTable->name) + 2;
+  if (upperAt < strlen(joinedName))
   	joinedName[upperAt] = toupper(joinedName[upperAt]);
 	assocTableName = renameUnique(tableHash, joinedName);
 	assocTable = tableNew(assocTableName, NULL, NULL);
 	assocTable->isAssoc = TRUE;
 	addFieldToTable(assocTable, parentTable->name, parentTable->name,
 	    parentTable->primaryKey->attStat, TRUE, TRUE, 
 	    parentTable->primaryKey->isString, textField);
 	addFieldToTable(assocTable, table->name, table->name,
 	    table->primaryKey->attStat, TRUE, TRUE, 
 	    table->primaryKey->isString, textField);
 	slAddHead(pTableList, assocTable);
 	AllocVar(ref);
 	ref->assoc = assocTable;
 	ref->parent = parentTable;
 	slAddHead(&table->parentAssocs, ref);