Invalid character in 'bareword' DB field crashes IOC
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
Undecided
|
Andrew Johnson |
Bug Description
When a DB file contains a 'bareword' as a field value, invalid characters in that bareword may crash the IOC.
Example (replacing dbExample1.db in the example template from Base, note the "wrong" opening double quotes):
record(calc, "$(user)
{
field(CALC, “some-nonsense$
}
The IOC sometimes just complains:
dbLoadTemplate "db/user.
Error: Invalid character '▒'
at or before "▒" in file "db/dbExample1.db" line 3
Error: Invalid character '▒'
Error: Invalid character '▒'
Error: Invalid character '$'
Error: syntax error
Error: dbRecordHead: tempList not empty
at or before ")" in file "db/dbExample2.db" line 1
Error: dbRecordBody: tempList not empty
dbLoadRecords "db/dbSubExampl
## Set this to see messages from mySub
#var mySubDebug 1
## Run this to trace the stages of iocInit
#traceIocInit
cd "/home/
iocInit
Starting iocInit
But sometimes it crashes:
dbLoadTemplate "db/user.
Error: Invalid character '▒'
at or before "▒" in file "db/dbExample1.db" line 3
Error: Invalid character '▒'
Error: Invalid character '▒'
Error: Invalid character '$'
Error: syntax error
Error: dbRecordHead: tempList not empty
at or before ")" in file "db/dbExample2.db" line 1
[ 12:54:13 ]
ralph @ machine : ~/work/CODAC/TTT $
Changed in epics-base: | |
status: | New → Fix Committed |
assignee: | nobody → Andrew Johnson (anj) |
Changed in epics-base: | |
status: | Fix Committed → Fix Released |
Fun fact:
Having three "Invalid character" messages is related to the fact that the "left double quotation mark" character is encoded in UTF-8 as three bytes: e2 80 9c.