os/kernelhwsrv/kernel/eka/compsupp/aehabi/Readme
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
Exceptions library release 1.01.
sl@0
     2
sl@0
     3
This source code is intended to be compliant with release 1.0 of the EHABI. 
sl@0
     4
sl@0
     5
The following defects against the previous (1.0) release have been fixed:
sl@0
     6
sl@0
     7
1) The personality routines were checking handler table entry descriptor
sl@0
     8
ranges using virtual r14 not virtual r15. Consequently if the entry contained
sl@0
     9
two or more descriptors with matching ranges, and the first was a cleanup,
sl@0
    10
subsequent descriptors would incorrectly fail the range check because the
sl@0
    11
cleanup code legitimately corrupted r14 (and hence virtual r14; virtual r15
sl@0
    12
is preserved).
sl@0
    13
sl@0
    14
2) The runtime library would call abort() instead of terminate() under this
sl@0
    15
sequence of events:
sl@0
    16
i)   The program installs an unexpected exception handler (set_unexpected(...)).
sl@0
    17
ii)  A throw of type T violates a function exception specification, causing
sl@0
    18
     unexpected() to be called and the user's handler to be entered.
sl@0
    19
iii) The handler throws another exception of type T.
sl@0
    20
sl@0
    21
3) Type matching when throwing a NULL pointer to pointer to T (any type T)
sl@0
    22
could dereference down the "pointer" chain beginning at location 0 (=NULL),
sl@0
    23
hence possibly accessing any location in memory.