Commit Graph
62 Commits
Author SHA1 Message Date
Jacqueline GarrahanandClaude Opus 4.8 5107e2de49 errlog: fix out-of-bounds read when resizing the print buffer
errlogBufResize copied the print buffer from &pvt.print->base (the
address of the char* field inside the buffer_t struct) instead of
pvt.print->base (the buffer it points to), reading bufSize bytes from an
~8-byte struct field.  Drop the stray & so it reads the actual buffer,
matching the adjacent log-buffer copy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-10-14 11:17:17 +02:00
Simon Rose 8e56569e41 Add error/warning ANSI prefixes to error/warning messages 2026-10-13 10:25:09 +02:00
Simon Rose 90c287fbaa Add unrelease for errloginit2 change 2026-10-13 10:24:53 +02:00
Simon Rose ca424832a7 Block resizes from listener callbacks 2026-10-13 10:24:41 +02:00
Simon Rose 2bb445a992 Lock buffer size changes while running thread 2026-10-13 10:24:24 +02:00
Simon Rose 9668255042 Call errlogClampConfig only a single time 2026-10-13 10:24:12 +02:00
Simon Rose 8999ee7a0b Move frees out of mutex lock 2026-10-13 10:23:57 +02:00
Simon Rose 9cdd14d47d Remove errlogBufResize in favour of allowing errlogInit[2] to be called repeatedly 2026-10-13 10:22:47 +02:00
Simon Rose 63b22565fc Add warning if errorlog configuration has been clamped 2026-10-13 10:22:36 +02:00
Simon Rose b86265e682 Make the maximum message size dependent on the buffer size 2026-10-13 10:22:25 +02:00
Simon Rose 0e0a815e7c Update the error log functionality to avoid losing writes 2026-10-13 10:22:15 +02:00
Simon Rose 9b835a1fdb Add command to show errlog buffer contents 2026-10-13 10:21:59 +02:00
Simon Rose d3ff8dca3f Add commandline utility to resize buffer after being initialised 2026-10-13 10:21:35 +02:00
Simon Rose 53a3e4b694 Modify errorlog initialisation to add separate default value 2026-10-13 10:20:50 +02:00
zimoch 15ba5ed863 Merge branch '7.0' into PSI-7.0 2026-09-28 09:39:12 +02:00
zimoch db693d4930 enable trim_trailing_whitespace 2026-02-18 10:34:08 -06:00
zimoch 3d95dece6b Merge 7.0.10 into PSI-7.0 2026-01-06 14:57:16 +01:00
zimoch 90a727c901 Fix spelling errors
Most errors found with:

codespell -L cach,thst,odly,aslo,parm,parms,inpu,ges,prset,pevent,ptd,pring,valu,noo,noe,ned,inout,ro,siz,froms,nd,fo,singl,sart,multy,tthe,allong,ment,inate,nodel,tring,alse,ture,thi,wille,numer

Some more manually found (its -> it's)

c++20: Do not use apostrophe (e.g. can't) in unquoted #error message
2025-12-01 19:00:04 -08:00
zimoch 03f17a08c3 Merge branch '7.0' into PSI-7.0 2024-08-07 17:30:04 +02:00
Michael Davidsaver 77490d4939 space in errPrintf() output 2024-06-11 11:14:07 -07:00
zimoch 87d492bffd Merge branch '7.0' into PSI-7.0 2024-04-30 14:40:00 +02:00
Andrew Johnson 331df3d7e4 UNRELEASED => 7.0.8 2023-12-14 16:42:10 -06:00
Michael Davidsaver 1b23701946 incorrect error check on GetStdHandle()
Likely inconsequential as GetConsoleMode() should
return 0 when given an invalid handle.
2023-12-01 16:47:45 +01:00
AlexWells 680e1734a4 iocsh: Add underline separator between help outputs
Also tweaks the overall format of the message a bit.
Add tests for new help output format
2023-12-01 16:34:04 +01:00
Michael Davidsaver e291ca0a03 Fix compile w/ vs2012 2023-12-01 15:04:24 +01:00
Emilio Perez 5b84a86ccd Allow adding error symbols after early initialization
This was acomplished by making errSymbolAdd add the error symbol directly
into the global hash table and removing errnumlist which is not needed
anymore.

Unit tests were added for checking the following cases:
- Adding a valid symbol and checking that it exists (fixed by this change)
- Getting an existing error symbol
- Getting a non existing error symbol
- Adding an invalid error symbol (fixed by this change)
- Adding an error symbol with a code that already
  exists (fixed by this change)

Therefore, issue #268 was fixed

error: statically allocate error symbol hash table

This will allow calling errSymbolAdd before errSymBld, therefore, a
function adding error symbols can now be run before iocInit or errlogInit

error: add a constant for the minimum module number

Make adding an identical error symbol not fail

A test case was also added which test that adding an error symbol
with same error code and message as one added before will not fail

Add locking to error symbol table

This protects the cases of:
- simultaneously adding and requesting of an error symbol
- simultaneously adding many error symbols

Update release notes regarding adding error symbols
2023-12-01 15:03:00 +01:00
zimoch 1d3a2defa2 Merge 7.0 commit 'ca9c95' into PSI-7.0 2023-12-01 14:21:07 +01:00
Michael Davidsaver ffc2d0f23a incorrect error check on GetStdHandle()
Likely inconsequential as GetConsoleMode() should
return 0 when given an invalid handle.
2023-11-07 15:53:41 -08:00
AlexWells 6dec68554c iocsh: Add underline separator between help outputs
Also tweaks the overall format of the message a bit.
Add tests for new help output format
2023-10-22 17:42:36 -07:00
Michael Davidsaver 88ea1507f4 Fix compile w/ vs2012 2023-09-22 08:20:27 -07:00
Emilio Perez 8c08c57247 Allow adding error symbols after early initialization
This was acomplished by making errSymbolAdd add the error symbol directly
into the global hash table and removing errnumlist which is not needed
anymore.

Unit tests were added for checking the following cases:
- Adding a valid symbol and checking that it exists (fixed by this change)
- Getting an existing error symbol
- Getting a non existing error symbol
- Adding an invalid error symbol (fixed by this change)
- Adding an error symbol with a code that already
  exists (fixed by this change)

Therefore, issue #268 was fixed

error: statically allocate error symbol hash table

This will allow calling errSymbolAdd before errSymBld, therefore, a
function adding error symbols can now be run before iocInit or errlogInit

error: add a constant for the minimum module number

Make adding an identical error symbol not fail

A test case was also added which test that adding an error symbol
with same error code and message as one added before will not fail

Add locking to error symbol table

This protects the cases of:
- simultaneously adding and requesting of an error symbol
- simultaneously adding many error symbols

Update release notes regarding adding error symbols
2023-09-22 08:20:19 -07:00
Michael Davidsaver fe3ee85aee doc errSymTbl.h 2023-09-05 08:52:58 +02:00
Michael Davidsaver c8d596034a add missing include 2023-09-01 16:11:50 +02:00
Emilio Perez 9934242ccf Add locking to error symbol table
This protects the cases of:
- simultaneously adding and requesting of an error symbol
- simultaneously adding many error symbols

x
2023-09-01 16:11:50 +02:00
Emilio Perez e6dab90bf4 Make adding an identical error symbol not fail
A test case was also added which test that adding an error symbol
with same error code and message as one added before will not fail
2023-09-01 16:11:50 +02:00
Emilio Perez c680b9bebd error: add a constant for the minimum module number 2023-09-01 16:11:50 +02:00
Emilio Perez 9555ca05b8 error: statically allocate error symbol hash table
This will allow calling errSymbolAdd before errSymBld, therefore, a
function adding error symbols can now be run before iocInit or errlogInit
2023-09-01 16:11:49 +02:00
Emilio Perez 0cd56fa40b Allow adding error symbols after early initialization
This was acomplished by making errSymbolAdd add the error symbol directly
into the global hash table and removing errnumlist which is not needed
anymore.

Unit tests were added for checking the following cases:
- Adding a valid symbol and checking that it exists (fixed by this change)
- Getting an existing error symbol
- Getting a non existing error symbol
- Adding an invalid error symbol (fixed by this change)
- Adding an error symbol with a code that already
  exists (fixed by this change)

Therefore, issue #268 was fixed
2023-09-01 16:11:49 +02:00
zimoch 1148931226 On Vxworks clone std* file handles because they are thread specific 2023-09-01 14:15:56 +02:00
Michael Davidsaver 1595ed8860 quieting clang-tidy, non-functional changes
Changes to syntax which should not effect generated code
2023-08-28 14:17:00 +02:00
Eva Lott b878295d06 Added the new annotation EPICS_PRINTF_FMT 2023-05-01 09:03:45 -07:00
Andrew Johnson 7ef0c80630 errSymLib: status 0 => "Ok" 2022-12-31 19:14:57 -06:00
Michael Davidsaver 49fddaa13e errlogRemoveListeners() handle self-removal
Handle errlogRemoveListeners() during a callback.
2022-12-20 20:12:04 -08:00
Michael Davidsaver 7448a8bfa9 errlog: worker exit when buffer is empty
Allow the worker to flush any buffered messages.
After pvt.atExit, further logging will be synchronous.
Ensure any flusher gets a final wakeup.
2022-12-20 20:12:04 -08:00
Andrew Johnson e4811d5a28 Documentation updates UNRELEASED => 7.0.7 2022-09-07 12:46:21 -05:00
Jure Varlec e6b8ecd55e Add space to the message printed by errMessage() 2022-07-28 13:11:29 -07:00
Michael Davidsaver a44ddd586e errlog: add ANSI_BOLD 2022-05-12 09:01:36 -07:00
Michael Davidsaver 2f51653a9e errlog: try to enable WIN10 terminal escape processing 2021-10-18 08:45:13 -07:00
Michael Davidsaver 0c12b02d4f errlog strip ANSI escapes
Always strip for handlers, and conditionally
if stderr is not a TTY, or $TERM unset/empty.
2021-10-18 08:45:13 -07:00
Michael Davidsaver ac12ccad38 errlog add ANSI escape macros 2021-10-18 08:45:13 -07:00