[Bug 1747] New: Heap extend allows discontinuous memory regions.

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Tue Mar 1 02:16:44 UTC 2011


https://www.rtems.org/bugzilla/show_bug.cgi?id=1747

           Summary: Heap extend allows discontinuous memory regions.
           Product: RTEMS
           Version: HEAD
          Platform: All
        OS/Version: RTEMS
            Status: NEW
          Severity: normal
          Priority: P3
         Component: cpukit
        AssignedTo: sebastian.huber at embedded-brains.de
        ReportedBy: chrisj at rtems.org


The check in (cpukit/ChangeLog) states:

 2010-06-07      Sebastian Huber <sebastian.huber at embedded-brains.de>

     * score/src/heapextend.c: Implemented support for scattered heap areas.

The heap cannot support scattered blocks because the _Heap_Is_block_in_heap
assumes the region is continuous between the first and last blocks of the heap.
Making the gaps in the regions passed to the heap extend call used is
questionable and makes the _Heap_Is_block_in_heap test not really perform the
task it's name states. This is an issue because it is this check that
determines if a heap free of NULL should proceed. This issue is covered in
another PR.

I also wonder about a heap free call to an address that maps to one of the
"in-use" gap regions. The previous heap code knew if an address was in the heap
and therefore it was kind of safe to probe for a valid block. This assumption
is now not valid.

The former heap extend code:


http://www.rtems.org/viewvc/rtems/cpukit/score/src/heapextend.c?revision=1.7&view=markup

clearly states the type of memory that can be added to an existing heap. The
current code has no restrictions. The user manual is not great in this area. It
would also be useful if comments are added to the heap extend code.

The heap extend code is used by the rtems_region_extend call and this call
clearly states in the manual that the memory region must be continuous. If this
has changed  we should discuss the API change and make better note of it. I
also suspect the testsuite will need additions to test any API changes.

-- 
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the bugs mailing list