critical impact:
shmat - address space limitations (CrCh15)
Problem description
The HP-UX shmat function has limitations that do not exist on Tru64 UNIX.
However, these limitations are resolved with the Adaptive Address Space (AAS) feature of HP-UX, which was added in HP-UX 11i v2.0.
The default address space layout on HP-UX places the following limitations on the value of the address parameter that Tru64 UNIX does not:
If the shared memory segment has never been attached to by any process prior to the current shmat call, shmaddr must be specified as zero. The segment is attached at a location selected by the operating system.
If this is not the first shmat call on the shared memory segment throughout the system, shmaddr must either be zero or contain a nonzero address that is identical to the one returned from previous shmat calls for that segment.
In summary, HP-UX does not allow a shared memory segment to occupy different virtual memory addresses in different processes; Tru64 UNIX allows this. Identifiers
 shmat |
|
|
|
|
|
|
See also
Solution description
The AAS feature of HP-UX provides a new address space layout, Mostly Private Address Space (MPAS), in which these limitations do not apply.
To make an executable use the MPAS layout, use the +as mpas option of ld or chatr. Note that MPAS might lower performance because it uses address aliasing and the default address space layout on HP-UX does not.
Review the AAS white paper for more information. See also
Problem summary
| classifications |
source types |
OS release |
severity |
type |
| UN |
C, C++ |
any HP-UX 11i version |
critical |
changed |
|