b082e7d1e8485abf66b34473a041166c279274d4
Issue diagnosed and reported by Ambroz Bizjak. The dbContextReadNotifyCacheAllocator allocator clears its cache of free buffers on an array size change. But doesn't consider buffer already in use, which will later be free'd. Such buffers were being returned to the cache, then reused in allocations for which they are too short. Track the size of buffers which are in use. Only return buffers with the present length to the cache. Others are free'd immediately.
--------------------------------------------------------- EPICS Base - the central core of a control system toolkit --------------------------------------------------------- Copyright (c) 1991-2003 The University of Chicago, as Operator of Argonne National Laboratory. Copyright (c) 1991-2003 The Regents of the University of California, as Operator of Los Alamos National Laboratory. EPICS Base Versions 3.13.7 and higher are distributed subject to a Software License Agreement found in the file LICENSE that is included with this distribution. --------------------------------------------------------- Installation and release information can be found in the various files in the documentation subdirectory. Additional information about EPICS including mailing list archives and subscription instructions, documentation and training materials, additional components, links to other websites etc. is available on the EPICS home page at http://www.aps.anl.gov/epics/
Languages
C++
81.9%
C
8.6%
HTML
7.9%
Makefile
1.1%
DIGITAL Command Language
0.5%