Commit Graph
1543 Commits
Author SHA1 Message Date
Jacqueline GarrahanandClaude Opus 4.8 ec0ae7d831 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-07-16 16:57:57 -05:00
Andrew Johnson 605542ece7 Release notes, add a drvet to the example template 2026-07-16 16:16:39 -05:00
Andrew Johnson cd6d2ed042 Move -DUSE_TYPED_DRVET to USR_CPPFLAGS
Also fixes an issue in the generated registerRecordDeviceDriver code.
2026-07-16 16:16:39 -05:00
Érico Nogueira b87b6c91ff Fix UAF in caRepeaterThread
The ca_repeater function has some failure cases which can cause it to
return. In such a situation, a reference to the current thread's
epicsThreadId is kept in the taskwd, causing an eventual use-after-free
when the taskwd tries to determine the task's status.

We fix this problem by removing the thread from the taskwd if
ca_repeater ever returns.
2026-07-06 16:29:52 -07:00
Michael Davidsaver cf85a1a5eb rsrv: log_header paddr=
Currently prints dbChannel**
2026-06-24 18:16:55 -07:00
Michael Davidsaver 07da9aeb32 minor 2026-06-24 18:16:55 -07:00
Michael Davidsaver f634d3d885 fix last LOCAL 2026-06-24 18:16:55 -07:00
Jeremy Lorelli 35a91eed8d database: Replace epicsEventMustSignal -> epicsEventMustTrigger in comments 2026-06-24 17:00:30 -07:00
Michael Davidsaver 499fec4120 doc devSup.h 2026-06-21 14:49:25 -07:00
Michael Davidsaver 46ab847d8a Document dbScan.h 2026-06-21 14:23:12 -07:00
Michael Davidsaver db67227a96 dbScan one more NUM_TIME_EVENTS 2026-06-21 09:27:55 -07:00
Michael Davidsaver 45a1edcfac minor 2026-06-21 09:27:55 -07:00
mdavidsaver 4b03e97d7b Embed GDB helper
* Add GDB helper script

Pretty printing of some common argument types

Need to add a line to ~/.gdbinit

> add-auto-load-safe-path /path/to/base/checkout/

afterwards verify at GDB shell with

> info auto-load python-scripts
> info pretty-printer

Tested with GDB 16.3 circa Debian 13

Add $rcast(dbCommon) to up-cast
Add $record("name") to lookup record
Add $elln(ELLLIST,#) to index into list
2026-06-21 07:18:08 -07:00
rhong 987b21f68a Slow search_reply_udp in RTEMS IOCs (#836)
* Use malloc_free_space() instead of malloc_info( &info ) in osiSufficentSpaceInPool
2026-06-18 11:27:53 -05:00
Abdalla Al-Dalleh 678092d033 biRecord.c/boRecord.c: Fix gcc -Wsizeof-pointer-memaccess (#887)
../rec/biRecord.c:191:42: warning: argument to ‘sizeof’ in ‘strncpy’
call is the same expression as the source; did you mean to use the
size of the destination? [-Wsizeof-pointer-memaccess]
  191 |         strncpy(pstring,prec->znam,sizeof(prec->znam));
      |                                          ^

Use memcpy instead of snprintf.

STATIC_ASSERT is added to ensure znam and onam are sized enough.
2026-06-10 09:53:31 -05:00
Michael Davidsaver 7e18b8cff0 asDump* quote UAG and HAG entries 2026-06-07 16:35:25 -07:00
Torsten Bögershausen 87ee088728 dbAccess.c: Improve logging of illegal field_type
Debugging a problem and looking at the message

recGblDbaddrError: dbPut: Request type is 0 Illegal Database Request Type...
does not help very much: request type 0 is a legal value.

Improve the message to show the field type as well:
recGblDbaddrError: dbPut: dbrType = 0 field_type = DBF_INLIK (14)...

Do the same for both dbPut and dbGet.
2026-05-27 09:52:14 -05:00
Simon Rose d1705d46f2 Refactor tests and add test that errlogInit() can be run more than once 2026-05-27 09:50:20 -05:00
Simon Rose 5122fabf74 Add error/warning ANSI prefixes to error/warning messages 2026-05-27 09:50:20 -05:00
Simon Rose c0117c4b1d Add unrelease for errloginit2 change 2026-05-27 09:50:20 -05:00
Simon Rose cb5c540c4e Block resizes from listener callbacks 2026-05-27 09:50:20 -05:00
Simon Rose 8834727b5b Lock buffer size changes while running thread 2026-05-27 09:50:20 -05:00
Simon Rose 70e34a7a2e Call errlogClampConfig only a single time 2026-05-27 09:50:20 -05:00
Simon Rose 73b89cbcd9 Move frees out of mutex lock 2026-05-27 09:50:20 -05:00
Simon Rose a3d76ef8fb Stop flushing the errorlog during init 2026-05-27 09:50:20 -05:00
Simon Rose bf5e39976f Change initial errlogprintfs to printfs
RTEMS performs a few early errlogPrintf calls. This initialises
the errlog buffers to some default values blocking certain tests
from re-initialising the error log later.
2026-05-27 09:50:20 -05:00
Simon Rose 68763a9ae9 Remove errlogBufResize in favour of allowing errlogInit[2] to be called repeatedly 2026-05-27 09:50:20 -05:00
Simon Rose f7c74a04b1 Add warning if errorlog configuration has been clamped 2026-05-27 09:50:20 -05:00
Simon Rose 3b7a5b5106 Make the maximum message size dependent on the buffer size 2026-05-27 09:50:20 -05:00
Simon Rose b334ec80bb Update the error log functionality to avoid losing writes 2026-05-27 09:50:20 -05:00
Simon Rose bb5f12b2fa Add command to show errlog buffer contents 2026-05-27 09:50:20 -05:00
Simon Rose a03d1fbe45 Add commandline utility to resize buffer after being initialised 2026-05-27 09:50:20 -05:00
Simon Rose 6b80b0cfb9 Modify errorlog initialisation to add separate default value 2026-05-27 09:50:20 -05:00
Michael Davidsaver 2f20e78e43 epicsStrPrintEscaped() operate on unterminated string
see 3a2d225682
see f488765631
2026-05-14 08:44:38 -07:00
Michael Davidsaver 8bfe89b57d doc dbBase.h
document dbBase list node types
2026-05-12 18:50:54 -07:00
Andrew Johnson b5434c1e6b Error message fixes/improvements 2026-04-15 10:09:52 -05:00
Michael Davidsaver ef48298294 dbCa: iocInit wait for all conditions
After connectCallback, need to wait for up to three
concurrent actions.  Native and string subscriptions,
as well as GET of metadata.

Complicated because event_handler_args does not identify
the evid.

see 717d69e1fc
2026-04-15 10:05:07 -05:00
Michael Davidsaver b761beaf0c doc 2026-04-10 19:47:56 -07:00
Michael Davidsaver 77e499ae84 doc dbProcess() 2026-04-10 19:47:56 -07:00
Edmund Blomley c9817fa591 Add AFTC flag for bi record and fix mbbi AFTC bug (#817)
* Add AFTC feature to bi record with tests.

* Fix broken AFTC handling for mbbi record, also fix bug in COSV and LALM handling.

* Add release notes and update record docs.
2026-04-01 11:53:39 -05:00
Freddie Akeroyd 631c8831b9 Fix number of tests 2026-04-01 08:37:29 -07:00
Freddie Akeroyd acf53d31ee Add test case 2026-04-01 08:37:29 -07:00
Freddie Akeroyd fb09dc0df9 Fix memory overwrite in macParseDefns 2026-04-01 08:37:29 -07:00
Andrew Johnson 05c27e453c Color the keywords in macLib errors 2026-04-01 10:26:47 -05:00
Andrew Johnson 1c9ef94818 Fix the bug reported in #834, but behaves differently
Adds tests and checks for unterminated macros,
which are now reported but not expanded.
2026-04-01 10:26:47 -05:00
Evan Daykin 77a3b8110f use (s)rand() to generate RNDM calc values with a system clock nanosecond seed 2026-04-01 10:16:34 -05:00
Érico Nogueira 6ef94d744f Use deterministic timezones in epicsTimeZoneTest
The DST characteristics of the POSIX EST5EDT and CST6CDT timezones
depend on whether the implementation uses the built-in POSIX definition
or reads an updated version from the tzdata files, and for POSIX
timezones, there is no specified behavior [1].

To avoid any plaform-specific behavior, we can specify the desired DST
ourselves. We used the timezone values available in
configure/CONFIG_SITE_ENV, which already included DST information, and
means the tests are consistent with our own usage.

[1] https://www.openwall.com/lists/musl/2024/03/05/2
2026-04-01 10:13:56 -05:00
Michael Davidsaver e181517de1 readline history, clear before append
read_history() appends to the global history array.
Clear before each read to prevent duplication.
2026-04-01 10:01:54 -05:00
Michael Davidsaver 4dfd5c7694 skip readline interactive setup when not interactive 2026-04-01 10:01:54 -05:00
ronaldomercado 2d8a6f91a9 Use consistent language for string termination (#806)
Avoid hyphen, prefer space: "null terminated"
2026-03-18 10:45:25 -05:00