From 49889d8549446c9bd240b8b9589c386b4cbc9498 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Wed, 10 Jun 2020 10:09:50 -0700 Subject: [PATCH] Extend record name validation Begin enforcing earlier check (and tab). Add new warning for record names beginning with numeric or '{'. --- modules/database/src/ioc/dbStatic/dbLexRoutines.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/database/src/ioc/dbStatic/dbLexRoutines.c b/modules/database/src/ioc/dbStatic/dbLexRoutines.c index 91b3acc68..311d7079b 100644 --- a/modules/database/src/ioc/dbStatic/dbLexRoutines.c +++ b/modules/database/src/ioc/dbStatic/dbLexRoutines.c @@ -1045,10 +1045,15 @@ static void dbRecordHead(char *recordType, char *name, int visible) yyerrorAbort("dbRecordHead: Record name can't be empty"); return; } - badch = strpbrk(name, " \"'.$"); + badch = strpbrk(name, " \t\"'.$"); if (badch) { - epicsPrintf("Bad character '%c' in record name \"%s\"\n", + epicsPrintf("Error: Bad character '%c' in record name \"%s\"\n", *badch, name); + yyerrorAbort(NULL); + return; + } else if((*name >= '0' && *name <= '9') || *name=='{') { + epicsPrintf("Warning: Bad character '%c' begins record name \"%s\"\n", + *name, name); } pdbentry = dbAllocEntry(pdbbase);