|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: IT Resource Center (support_feedback_at_us-support-mail.external.hp.com)
Date: Sun Aug 18 2002 - 11:09:42 CDT
HP Support Information Digests
===============================================================================
o IT Resource Center World Wide Web Service
---------------------------------------------------
If you subscribed through the IT Resource Center and would
like to be REMOVED from this mailing list, access the
IT Resource Center on the World Wide Web at:
http://www.itresourcecenter.hp.com/
Login using your IT Resource Center User ID and Password.
Then select Support Information Digests (located under
Maintenance and Support). You may then unsubscribe from the
appropriate digest.
To download a patch referenced below, access the
IT Resource Center on the World Wide Web at:
http://www.itresourcecenter.hp.com/
Login using your IT Resource Center User ID and Password.
Then select Individual Patches (under Maintenance and Support)
to access the patch. You may also download a patch via anonymous
ftp(1) from ftp.itrc.hp.com.
===============================================================================
Digest Name: weekly HP-UX series 800 11.X patch digest
Created: Sun Aug 18 3:05:07 PDT 2002
Table of Contents:
Document ID Title
--------------- -----------
PHCO_27408 s700_800 11.11 LVM commands cumulative patch
PHSS_27233 s700_800 11.00 X/Motif 64bit DevKit Periodic Patch
PHKL_27688 s700_800 11.11 Over-temp/LPMC Panic
PHKL_26938 s700_800 11.11 Preemption,VM allocation,Psets,PRM mem group
PHCO_27004 s700_800 11.00 login(1) cumulative patch
PHCO_25976 s700_800 11.00 libc cumulative patch
PHSS_27656 s700_800 11.04 Webproxy server 2.0 update
PHSS_27655 s700_800 11.04 HP Praesidium Webproxy 1.0 server update
PHSS_27234 s700_800 11.11 X/Motif Runtime Periodic Patch
PHCO_27618 s700_800 11.11 diskinfo(1M) patch
PHCO_27528 s700_800 11.00 tztab(4) cumulative patch
PHSS_27690 s700_800 11.04 Virtualvault 4.6 vvctl/owsctl fix
PHSS_27689 s700_800 11.04 Virtualvault 4.5 vvctl/owsctl fix
PHSS_27644 s700_800 11.X OV NNM6.2 Reports fail if ifAlias has quotes
PHSS_27524 s700_800 11.11 Support Tool Manager Mar 02 Patch
PHSS_27523 s700_800 11.00 Support Tool Manager Mar 02 Patch
PHSS_27423 s700_800 11.04 Virtualvault 4.6 Inside Server Update
PHSS_27246 s700_800 11.X MC/ServiceGuard and SG-OPS Edition A.11.14
PHSS_27235 s700_800 11.11 X/Motif DevKit Periodic Patch
PHSS_27232 s700_800 11.00 X/Motif 64bit Runtime Periodic Patch
PHSS_27231 s700_800 11.00 X/Motif 32bit DevKit Periodic Patch
PHSS_27230 s700_800 11.00 X/Motif 32bit Runtime Periodic Patch
PHSS_27501 s700_800 11.04 Virtualvault A.04.60 TGA daemon Update
PHSS_27500 s700_800 11.04 Virtualvault A.04.50 TGA daemon Update
PHKL_27177 s700_800 11.11 VxVM boot support change for os loader
PHKL_27096 s700_800 11.11 VxVM,EMC,Psets&vPar,slpq1,earlyKRS
PHCO_27185 s700_800 11.11 ioinitrc(1M) cumulative patch
PHCO_27103 s700_800 11.11 pre_init_rc enh for VxVM rootability
PHCO_27101 s700_800 11.11 mkboot(1M) VxVM Rootability patch
PHCO_27100 s700_800 11.11 HFS mkfs(1M) VxVM Rootability patch
The documents are listed below.
-------------------------------------------------------------------------------
Document ID: PHCO_27408
Date Loaded: 20020812
Title: s700_800 11.11 LVM commands cumulative patch
Patch Name: PHCO_27408
Patch Description: s700_800 11.11 LVM commands cumulative patch
Creation Date: 02/08/07
Post Date: 02/08/12
Repost: 02/08/16
The Symptoms field in the patch documentation was modified to
remove the term 'Enhancement'. This particular LVM change is
not considered an enhancement, but is a hardware enablement
change to support the VA7405 and VA7410 disk arrays.
Hardware Platforms - OS Releases:
s700: 11.11
s800: 11.11
Products: N/A
Filesets:
LVM.LVM-ENG-A-MAN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
LVM.LVM-MIRROR-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
LVM.LVM-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
Automatic Reboot?: No
Status: General Release
Critical:
Yes
PHCO_27408: ABORT
This fixes a problem in the vgimport(1M) command
which results in a core dump.
PHCO_24809: ABORT
PHCO_23333: CORRUPTION
Category Tags:
defect_repair hardware_enablement enhancement
general_release critical halts_system corruption
manual_dependencies
Path Name: /hp-ux_patches/s700_800/11.X/PHCO_27408
Symptoms:
PHCO_27408:
( SR:8606251225 CR:JAGae17291 )
This product update provides LVM support for the VA7405 and
VA7410 disk arrays. Without this product update, there is a
potential risk of data corruption when these disk arrays are
used with LVM.
( SR:8606247046 CR:JAGae13486 )
The vgimport(1M) command may core dump when the number of
physical volumes specified on the command line is less than
the total number of physical volumes in the volume group.
This happens with all of the LVM commands patches between
PHCO_24809 and PHCO_25814.
PHCO_27099:
( SR:8606262676 CR:JAGae27007 )
The VERITAS Volume Manager (VxVM) is not able to create
workable root/boot disk on a system.
PHCO_25814:
( SR:8606227294 CR:JAGad96355 )
PHCO_24809 Introduced an extra 10 seconds delay during
LVM volume group activation, when all the disks in the
volume group are present.
PHCO_25390:
( SR:8606220106 CR:JAGad89247 )
PHCO_24809 introduced behavior that will cause the
lvlnboot(1M) command to fail when executed in recovery
mode. Executing 'lvlnboot -R' will fail to configure swap
and dump volumes and messages similar to the following will
be reported:
lvlnboot: Unable to configure swap logical volume.
Swap logical volume size beyond the IODC max address.
lvlnboot: Unable to configure dump logical volume.
Dump logical volume size beyond the IODC max address.
PHCO_24809:
( SR:8606196725 CR:JAGad65923 )
A volume group (VG) which is activated shared
(vgchange -a s), may be left with Physical volumes (PVs)
still attached on de-activation. If the VG is then exported,
it will not be possible to import and activate a different
VG using the same group file minor number without rebooting.
Typical activation error:
vgchange: Couldn't set the unique id for volume
group "XXX":
File exists
( SR:8606204445 CR:JAGad73627 )
The pvdisplay -v command shows incorrect information
about physical extent(s) and logical extent(s), if
the number of the extent(s) is more than 9999.
( SR:8606195190 CR:JAGad64396 )
When the size of the file "/etc/lvmpvg" gets more
than 8k bytes (characters), customers may encounter
the following problems:
lvcreate fails with:
Error detected when reading from file "/etc/lvmpvg".
pvdisplay reports a warning:
Bad file "/etc/lvmpvg": Missing PVG keyword.
( SR:8606202819 CR:JAGad71993 )
The vgcfgbackup command gives incorrect information about
the given file name. User might see the following error
message:
vgcfgback: Invalid filename: "XXX" specfied with -f.
( SR:8606214397 CR:JAGad83588 )
When more than one Volume Groups in LVM uses the same minor
number they overstep on each others data structures in the
kernel resulting in unpredictable behaviour with any of the
operations with these volume groups. This problem will not
go away even after removing both the volume groups. Any
creation of a volume group with the same minor number (after
removing all the Volume Groups using that minor number)
would fail with the following message even though there is
no volume group using that minor number at this time.
vgcreate: Volume group "/dev/vgX" could not be created:
A volume group is already using this major and minor number.
Please check the minor number of the "group" device file.
( SR:8606198832 CR:JAGad68021 )
The lvlnboot -v command displays incorrect boot disk
information when the boot disks order in the lvmtab file
is reversed.
( SR:8606214419 CR:JAGad83610 )
LVM commands coredump. Due to stack size overflow.
( SR:8606186700 CR:JAGad55910 )
The pvcreate manual page does not document that
pvcreate when invoked with the -f may overwrite disks under
the control of the Veritas volume manager.
( SR:8606189090 CR:JAGad58306 )
The lvextend command could lead to data corruption, if the
user enters the same physical volume more than once in the
command line.
( SR:8606166168 CR:JAGad35455 )
The vgscan command puts a bogus entry in the lvmtab
file, when a special file /dev/slvmvg is present
with the same minor number as /dev/vg00.
( SR:8606213740 CR:JAGad82931 )
Very slow activation when physical volume links are
down.If some of the links to physical volumes in a LVM
volume group are not accessible then activation of volume
group containing these physical links would take from
several minutes to hours depending upon the number of
unavailable links.
( SR:8606204444 CR:JAGad73626 )
When running lvdisplay simultaneously with the
pvmove and the lvmerge commands, the lvdisplay command
displays zeros extent information.
PHCO_23333:
( SR:8606181365 CR:JAGad50582 )
Data loss and corruption can result from attempting
to use LVM with "Virtual Array" disk arrays.
Defect Description:
PHCO_27408:
( SR:8606251225 CR:JAGae17291 )
This product update contains minor enhancements required to
enable the VA7405 and VA7410 disk arrays to be used with
LVM.
Resolution:
Changes were made in LVM to use a unique identifier for each
LUN belonging to the VA7405 and VA7410 disk arrays. With
these changes the VA7405 and VA7410 disk arrays can be used
with LVM.
( SR:8606247046 CR:JAGae13486 )
This problem was exposed when a statically allocated array
was changed to a dynamically allocated array. During the
execution of the vgimport(1M) command, a function was still
assuming the array to be static, and was trying to access
elements past the end of the dynamically allocated array.
Stepping past the end of the array is what caused the
vgimport(1M) command to core dump.
Resolution:
The function no longer assumes the array to be a specific
size. The function now looks at a variable which contains
the number of elements in the array instead of relying on a
maximum constant variable.
PHCO_27099:
( SR:8606262676 CR:JAGae27007 )
The LVM library was not able to identify VxVM disks that
contain Cross platform Data Sharing (CDS) identifier labels.
Resolution:
Enhance the LVM library to be able to identify
VxVM disks that contain CDS identifier labels.
PHCO_25814:
( SR:8606227294 CR:JAGad96355 )
Patch PHCO_24809 contained fixes to improve the volume
group activation time of a volume group containing
unavailable physical volumes. However, this fix
introduced a 10 second delay during activation of a
volume group with all the physical volumes are
present. In all other cases the fix improves the
activation time. According to the fix in patch
PHCO_24809, during attaching of physical volumes, LVM
will try opening all the physical volumes and if some
opens fail, it will retry one more time after a delay
of 10 seconds before giving up on the failed
physical volumes. So the delay of 10 seconds should
happen only upon retry, but instead it is happening
for every try.
Resolution:
Corrected the retry loop to invoke delay only during
retry and not every time.
PHCO_25390:
( SR:8606220106 CR:JAGad89247 )
LVM dump and swap logical volumes should not extend beyond
the maximum IODC block address of the device on which these
contiguous logical volumes reside. To enforce this,
lvlnboot(1M) verifies that logical volume size for dump and
swap device is less than the maximum IODC block address of
the device, which is obtained by doing an ioctl to the
kernel with raw device id of the underlying device as an
argument. In PHCO_24809, as part of a code cleaup a typo
error was made where block device id was set for the ioctl
instead of raw device id. As a result, the ioctl call was
failing and it caused the lvlnboot(1M) command to fail.
Resolution:
Corrected the problem in the ioctl argument, now it gets
the maximum IODC block address from the raw device.
PHCO_24809:
( SR:8606196725 CR:JAGad65923 )
When a shared volume group is deactivated and then exported,
the volume group ID (vgid) is not cleared from the volgrp
structure. If the shared volume group is imported later on
with a different minor number, there will be two different
volgrp structures in the array with the same vgid - one is
a leftover, another one is created at the time of vg
activation. When the new VG is de-activated the previously
used (no longer active) volgrp slot may be incorrectly used.
This will result in the new volgrp being de-activated but
with the PVs pvol structures still attached. The latest
volgrp cannot be re-used with a different vgid without a
system reboot. If this process is repeated the finite number
of volgrp structures may be exhausted.
Resolution:
Vgexport will clear the volume group id while exporting the
volume group.
( SR:8606204445 CR:JAGad73627 )
LVM only allows 4 digits for displaying the
number of logical and physical extent(s).
Resolution:
Changed the LVM code to now allow 5 digits fields.
( SR:8606195190 CR:JAGad64396 )
The LVM library code used a C library
"ungetc" which has a 8k boundary which
caused problem when the length of the
ungetted strings is more than 8k.
Resolution:
The LVM library code has been modified
to fix the problem.
( SR:8606202819 CR:JAGad71993 )
The vgcfgbackup command did not check the file name
correctly.
Resolution:
Modified the vgcfgbackup command to fix the problem.
( SR:8606214397 CR:JAGad83588 )
For every volume group configured, has an element in the
volume group data strures array in the kernel which contains
information specific to the volume group in the kernel. This
entry is indexed by the group id (minor number) created
during creation of the volume group. Since each entry
contains information specific to a volume group, every
volume group should have a unique group id. If more than
one volume groups are created with the same group id, then
they all map to the same element in the kernel data
structure, resulting in corruption of the data structure.
This causes unpredictable results with operations on all
these volume groups and even the export of these volume
groups does not happen cleanly resulting in prohibiting
any further use of these minor numbers even after removing
these volume groups.
Resolution:
Added a new check in vgcreate and vgimport to verify for the
unique group id, so that an entry in the kernel data
structure for the volume group is used only by this volume
group. The check verifies that the group id file is unique
in the /dev directory and is not used by any volume group.
( SR:8606198832 CR:JAGad68021 )
The lvlnboot command does not pick up the
correct boot disk information when the boot
disk order was reversed.
Resolution:
The lvlnboot command was modified to pick up the
refreshed boot disk information.
( SR:8606214419 CR:JAGad83610 )
In LVM commands, some of the large size arrays are
statically allocated resulting in stack size overflow,
which causes the commands to coredump when run.
Resolution:
All the arrays and data stuctures are dynamically allocated
resulting in less stack size usage.
( SR:8606186700 CR:JAGad55910 )
The manual page is incomplete. It should warn
of the possible pitfalls of using the -f option.
Resolution:
The document was corrected to fully describe the behavior
of the pvcreate -f option.
( SR:8606189090 CR:JAGad58306 )
A list of unique Physical Volumes is not properly
built during lvextend, and it leads to a case where multiple
entries of a same physical volume could be present list.
Resolution:
Added a new check during mapping of logical extents to
physical extent to verify that no physical extent
is mapped more than once.
( SR:8606166168 CR:JAGad35455 )
vgscan looks for all special files with major number
0x64 under /dev and assumes that the directory in which
it is present is a volume group name.
Resolution:
The vgscan command is modified to check the group file
under each volume group directory.
( SR:8606213740 CR:JAGad82931 )
During Volume Group activation, LVM opens each physical
link associated with the volume group. If the link is
unavailable i.e. open returns ENXIO error, LVM retries
opening the physical link for a maximum of 10 retries with a
sleep of one second between each retry. Opening of physical
links is a serial operation with commands issuing one open
at a time. Since opening a physical link would take tens of
seconds and total time of opening links is a cummulative of
these times it would take several minutes to hours depending
upon number of unavailable links in the volume group.
Resolution:
Fixing this defect requires corresponding kernel and
commands patch. Since most of the time is spent in the
one second sleeps between the retries and actual time
opening the device being negligible chainging the retry
per device to retry per opening of all devices reduces the
sleep time from (number of unavailable links * 10 seconds)
to 10 seconds. Hence the total time will be a fraction
more than the 10 seconds. For this kernel provides
interface to open a device with no retries and the commands
opens all the devices and then retries again
all the unavailable devices after the retry sleep time.
( SR:8606204444 CR:JAGad73626 )
LVM commands are not designed to have multiple
command running at the same time. Incorrect
information was displayed due to the problem.
Resolution:
Fix the lvdisplay command to display more
meaningful error message.
PHCO_23333:
( SR:8606181365 CR:JAGad50582 )
"Virtual Array" family of disks support splitting a LUN.
Since this results in a new disk with identical data to the
original disk, verifying the pvid and vgid information on
disk is no longer sufficient in determining which links are
alternate links to a LUN. This could result in data loss or
corruption by LVM using what it believes is an alternate
link to the original LUN when it is actually using a link to
the new LUN created by the split.
Resolution:
"Virtual Array" specific functionality to LVM was added by
using the array specific LUN id as a unique identifier when
we are attempting to identify alternate links and disks with
duplicate LVM metadata.
SR:
8606166168 8606181365 8606186700 8606189090 8606195190
8606196725 8606198832 8606202819 8606204444 8606204445
8606213740 8606214397 8606214419 8606220106 8606227294
8606247046 8606251225 8606262676
Patch Files:
LVM.LVM-ENG-A-MAN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/share/man/man1m.Z/pvcreate.1m
LVM.LVM-MIRROR-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/newconfig/sbin/lvchange.mir
/usr/newconfig/usr/sbin/lvchange.mir
LVM.LVM-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/sbin/lvchange
/sbin/lvcreate
/sbin/lvdisplay
/sbin/lvextend
/sbin/lvlnboot
/sbin/lvreduce
/sbin/lvremove
/sbin/lvrmboot
/sbin/pvchange
/sbin/pvck
/sbin/pvcreate
/sbin/pvdisplay
/sbin/pvmove
/sbin/pvremove
/sbin/vgcfgbackup
/sbin/vgcfgrestore
/sbin/vgchange
/sbin/vgchgid
/sbin/vgcreate
/sbin/vgdisplay
/sbin/vgexport
/sbin/vgextend
/sbin/vgimport
/sbin/vgreduce
/sbin/vgremove
/sbin/vgscan
/usr/lib/nls/msg/C/lvm.cat
/usr/newconfig/sl
/usr/newconfig/usl
/usr/sbin/lvchange
/usr/sbin/lvcreate
/usr/sbin/lvdisplay
/usr/sbin/lvextend
/usr/sbin/lvlnboot
/usr/sbin/lvreduce
/usr/sbin/lvremove
/usr/sbin/lvrmboot
/usr/sbin/pvchange
/usr/sbin/pvck
/usr/sbin/pvcreate
/usr/sbin/pvdisplay
/usr/sbin/pvmove
/usr/sbin/pvremove
/usr/sbin/vgcfgbackup
/usr/sbin/vgcfgrestore
/usr/sbin/vgchange
/usr/sbin/vgchgid
/usr/sbin/vgcreate
/usr/sbin/vgdisplay
/usr/sbin/vgexport
/usr/sbin/vgextend
/usr/sbin/vgimport
/usr/sbin/vgreduce
/usr/sbin/vgremove
/usr/sbin/vgscan
what(1) Output:
LVM.LVM-ENG-A-MAN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/share/man/man1m.Z/pvcreate.1m:
None
LVM.LVM-MIRROR-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/newconfig/sbin/lvchange.mir:
None
/usr/newconfig/usr/sbin/lvchange.mir:
None
LVM.LVM-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/sbin/lvchange:
None
/sbin/lvcreate:
None
/sbin/lvdisplay:
None
/sbin/lvextend:
None
/sbin/lvlnboot:
None
/sbin/lvreduce:
None
/sbin/lvremove:
None
/sbin/lvrmboot:
None
/sbin/pvchange:
None
/sbin/pvck:
None
/sbin/pvcreate:
None
/sbin/pvdisplay:
None
/sbin/pvmove:
None
/sbin/pvremove:
None
/sbin/vgcfgbackup:
None
/sbin/vgcfgrestore:
None
/sbin/vgchange:
None
/sbin/vgchgid:
None
/sbin/vgcreate:
None
/sbin/vgdisplay:
None
/sbin/vgexport:
None
/sbin/vgextend:
None
/sbin/vgimport:
None
/sbin/vgreduce:
None
/sbin/vgremove:
None
/sbin/vgscan:
None
/usr/lib/nls/msg/C/lvm.cat:
None
/usr/newconfig/sl:
None
/usr/newconfig/usl:
None
/usr/sbin/lvchange:
None
/usr/sbin/lvcreate:
None
/usr/sbin/lvdisplay:
None
/usr/sbin/lvextend:
None
/usr/sbin/lvlnboot:
None
/usr/sbin/lvreduce:
None
/usr/sbin/lvremove:
None
/usr/sbin/lvrmboot:
None
/usr/sbin/pvchange:
None
/usr/sbin/pvck:
None
/usr/sbin/pvcreate:
None
/usr/sbin/pvdisplay:
None
/usr/sbin/pvmove:
None
/usr/sbin/pvremove:
None
/usr/sbin/vgcfgbackup:
None
/usr/sbin/vgcfgrestore:
None
/usr/sbin/vgchange:
None
/usr/sbin/vgchgid:
None
/usr/sbin/vgcreate:
None
/usr/sbin/vgdisplay:
None
/usr/sbin/vgexport:
None
/usr/sbin/vgextend:
None
/usr/sbin/vgimport:
None
/usr/sbin/vgreduce:
None
/usr/sbin/vgremove:
None
/usr/sbin/vgscan:
None
cksum(1) Output:
LVM.LVM-ENG-A-MAN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
1454124608 2987 /usr/share/man/man1m.Z/pvcreate.1m
LVM.LVM-MIRROR-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
257140228 835584 /usr/newconfig/sbin/lvchange.mir
2443889862 548864 /usr/newconfig/usr/sbin/lvchange.mir
LVM.LVM-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
538775833 815104 /sbin/lvchange
538775833 815104 /sbin/lvcreate
538775833 815104 /sbin/lvdisplay
538775833 815104 /sbin/lvextend
538775833 815104 /sbin/lvlnboot
538775833 815104 /sbin/lvreduce
538775833 815104 /sbin/lvremove
538775833 815104 /sbin/lvrmboot
538775833 815104 /sbin/pvchange
538775833 815104 /sbin/pvck
538775833 815104 /sbin/pvcreate
538775833 815104 /sbin/pvdisplay
538775833 815104 /sbin/pvmove
538775833 815104 /sbin/pvremove
538775833 815104 /sbin/vgcfgbackup
538775833 815104 /sbin/vgcfgrestore
538775833 815104 /sbin/vgchange
538775833 815104 /sbin/vgchgid
538775833 815104 /sbin/vgcreate
538775833 815104 /sbin/vgdisplay
538775833 815104 /sbin/vgexport
538775833 815104 /sbin/vgextend
538775833 815104 /sbin/vgimport
538775833 815104 /sbin/vgreduce
538775833 815104 /sbin/vgremove
538775833 815104 /sbin/vgscan
775697401 45279 /usr/lib/nls/msg/C/lvm.cat
257140228 835584 /usr/newconfig/sl
2443889862 548864 /usr/newconfig/usl
1222236002 528384 /usr/sbin/lvchange
1222236002 528384 /usr/sbin/lvcreate
1222236002 528384 /usr/sbin/lvdisplay
1222236002 528384 /usr/sbin/lvextend
1222236002 528384 /usr/sbin/lvlnboot
1222236002 528384 /usr/sbin/lvreduce
1222236002 528384 /usr/sbin/lvremove
1222236002 528384 /usr/sbin/lvrmboot
1222236002 528384 /usr/sbin/pvchange
1222236002 528384 /usr/sbin/pvck
1222236002 528384 /usr/sbin/pvcreate
1222236002 528384 /usr/sbin/pvdisplay
1222236002 528384 /usr/sbin/pvmove
1222236002 528384 /usr/sbin/pvremove
1222236002 528384 /usr/sbin/vgcfgbackup
1222236002 528384 /usr/sbin/vgcfgrestore
1222236002 528384 /usr/sbin/vgchange
1222236002 528384 /usr/sbin/vgchgid
1222236002 528384 /usr/sbin/vgcreate
1222236002 528384 /usr/sbin/vgdisplay
1222236002 528384 /usr/sbin/vgexport
1222236002 528384 /usr/sbin/vgextend
1222236002 528384 /usr/sbin/vgimport
1222236002 528384 /usr/sbin/vgreduce
1222236002 528384 /usr/sbin/vgremove
1222236002 528384 /usr/sbin/vgscan
Patch Conflicts: None
Patch Dependencies:
s700: 11.11: PHKL_24779
s800: 11.11: PHKL_24779
Hardware Dependencies: None
Other Dependencies:
This patch is a member of a set of patches needed to enable
VxVM rootability on HP-UX 11i. The patch set includes
PHKL_27096, PHCO_27099, PHCO_27100, PHCO_27101, PHCO_27103,
and PHCO_27209. If any of the patches belonging to this
set is not installed on the system, then the VxVM
rootability feature will not function. When the HP-UX 11i
0902 OEUR is installed, it will install the full set of
required patches for VxVM, including this patch.
Supersedes:
PHCO_27099 PHCO_25814 PHCO_25390 PHCO_24809 PHCO_23333
Equivalent Patches: None
Patch Package Size: 4140 KBytes
Installation Instructions:
Please review all instructions and the Hewlett-Packard
SupportLine User Guide or your Hewlett-Packard support terms
and conditions for precautions, scope of license,
restrictions, and, limitation of liability and warranties,
before installing this patch.
------------------------------------------------------------
1. Back up your system before installing a patch.
2. Login as root.
3. Copy the patch to the /tmp directory.
4. Move to the /tmp directory and unshar the patch:
cd /tmp
sh PHCO_27408
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHCO_27408.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHCO_27408. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
WARNING: If patch_save_files is false when a patch is installed,
the patch cannot be deinstalled. Please be careful
when using this feature.
For future reference, the contents of the PHCO_27408.text file is
available in the product readme:
swlist -l product -a readme -d
/tmp/PHCO_27408.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHCO_27408.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
-----End of Document ID: PHCO_27408------------------------------------------
Document ID: PHSS_27233
Date Loaded: 20020815
Title: s700_800 11.00 X/Motif 64bit DevKit Periodic Patch
Patch Name: PHSS_27233
Patch Description: s700_800 11.00 X/Motif 64bit DevKit Periodic Patch
Creation Date: 02/06/22
Post Date: 02/08/15
Hardware Platforms - OS Releases:
s700: 11.00
s800: 11.00
Products:
HP-UX X11R6 Developer's Toolkit B.11.00.01 B.11.00.03
Filesets:
X11MotifDevKit.X11R6-PRG,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.X11R6-PRG,fr=B.11.00.03,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.MOTIF21-PRG,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.MOTIF21-PRG,fr=B.11.00.03,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.MOTIF21-PGMAN,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.MOTIF21-PGMAN,fr=B.11.00.03,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.X11R6-PRG-CTRB,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP
X11MotifDevKit.X11R6-PRG-CTRB,fr=B.11.00.03,fa=HP-UX_B.11.00_32/64,v=HP
Automatic Reboot?: No
Status: General Release
Critical: No
Category Tags:
defect_repair enhancement general_release
Path Name: /hp-ux_patches/s700_800/11.X/PHSS_27233
Symptoms:
PHSS_27233:
1. Motif2.1 PushButtonGadgets/CascadeButtonGadgets
in popup menu not being armed correctly.
2. JAGad50435 breaks functionality of losingFocus
event for Text* Widget.
3. Five include files have duplicate and bad
definitions of NULL in 64-bit applications.
4. Program hangs when using menu with
button 2.
5. BtnDown does not occur when the child of
XmScrolledWindow is gadget in Motif2.1 .
6. Motif2.1 cannot set XmNvalue by
XtVaSetValues when it is a multibyte
locale.
7. aCC +w -- compiler warnings from
Xlib, etc.
8. RowColumn Widget size is not resized on
X11R6,MOTIF2.1.
9. A 64-bit application that calls
XListInputDevices() to an Xserver with
a NINE_KNOB box configured will abort.
10.XwcTextListToTextProperty() can return incorrect
results when operating on strings with JISX0212
characters. XmbTextListToTextProperty() works
correctly on the same string. This affects
applications using XwcTextListToTextProperty()
for data interchange, and it also affects
inputting of JISX0212 characters.
11.Calling XmbTextPropertyToTextList() on the
string returned by XmbTextListToTextProperty()
does not always generate the original string.
12.64-bit applications which use Xlib may abort
when running in a UTF8 locale.
13.When processing characters for display while
running in a GB18030 locale, the library
(and therefore the application) may enter
an infinite loop when it encounters illegal
GB18030 characters.
PHSS_25880:
1. Text/TextF Destroy method should cancel
timeout id in BrowseScroll().
2. Motif Text widget and TextField widget have
inconsistent behaviour after losingFocus event.
3. Motif 2.1 applications abort when displaying
to a Sun dual screen system.
4. XmToggleButton in PopupMenu does not call
XmNvalueChangedCallback.
5. Motif2.1 scrolled window problems
(for example, in dtfile).
6. Copy-paste of multibyte characters in Text/TextField
adds a junk character.
7. "*fontList" and "*defaultFontList" resources cause
core dump.
8. Motif 2.1: XmStringConcat does not function
correctly.
9. DtTerm does not output the correct escape sequence
of F1 & F10 on Non HP Xserver.
10.Frame does not allow to set the
XmNheight/XmNwidth for its children.
11.Motif Libs & using keyboard navigation cores at
X11/R6 1.2 & 2.1.
12.Focus goes on parent frame when modal
child dialog is active.
13.aCC - Compiler warning in Motif header files
BulletinBP.h, XmP.h and IntrinsicP.h.
14.Overlap text string after installed PHSS_23520 .
15.Using XSelectExtensionEvent() within a 64-bit application
does not actually select any XInput extension events.The
same application compiled in 32-bit mode, however, will
properly select the desired events.
16.C++ compiler warnings 740 and 749.
17.C++ compiler warning 600 when +w enabled.
18.C++ compiler errors due to reserved C++
words.
19.After logging into a CDE user session,
the $DISPLAY environment variable would
appear as local:0.0 instead of <hostname>:0.0.
Clients that were displaying to a remote
system are not affected.
20.The window height of some Java application
pop-up windows may be too large.
21.Without an Xlib that supports the GB18030 locale,
attempts to run X-based applications in a GB18030
locale will generate an error message denoting
that GB18030 is not supported, and Xlib will default
to the C locale.
PHSS_23523:
1. X11R6 libXt calls poll(2) incorrectly
2. Parsing problem for tab character in XmString.
3. Motif traits should be inherited by subclasses.
4. Memory leak in XmRegisterSegmentEncoding.
5. XtDestroy of half posted popup can corrupt memory
6. Motif application can crash when there is
a tear off and parent widget is NULL.
7. Toggle button in Motif2.1 is small in size when
its label string is NULL.
8. PHSS_21959 causes Oracle Forms application to fail
XmClipboardUnlock().
9. Motif2.1 CascadeB/BG double caches arrow pixmaps,
fails on XFreePixmap.
10.Application Core dumps when clicked
on a MenuShell with zero item
11.DtSpinBox aborts with the error "Object "" does
not have windowed ancestor"when a drag is initiated
with both left and middle button.
12.Memory leak when using XFreeFontSet.
13.Client program hangs.
14.Problem in X11/OpenDis.c.
15.Poor performance.
16.Poor performance.
17.Problem in _XAsyncReply().
18.Buffer overflows in libICE.
19.Threads applications calling this
routine might not flush properly
if this routine reaches an error
condition.
20.Incorrect image data.
21.Memory checking utilities will detect
error.
PHSS_22949:
1. When using motif 64 bit libraries on HP-UX 11.0, the
scrolled list top item increments by one each time it
is set.
2. Error message when compiling with rgb: compiler found a
rgb value when expecting color value.
3. Resize of dialog causes segmentation fault in
XtIsSubClass (Motif 2.1).
4. Motif2.1 XmToggleButton unselectColor not properly
updated by background.
5. Missing vertical scroll bar in a scrolled text widget
when created using XmCreateScrolledText.
6. Timeout callback sometimes never gets called although
it has been registered by XtAppAddTimeOut().
7. 64 bit libXp dumps core.
8. LookupSpringLoaded fails to unlock the process, causes
threaded applications to hang.
PHSS_21962:
1. Cascade button in OptionMenu has incorrect color.
2. Can't get MousePress when we add XmNinputCallback to
DrawAreaWidget.
3. XmOptionMenu sizes differently Motif2.1 vs Motif 1.2.
4. Recent X/Motif patch cause a gui hang.
5. Pointer ungrab fails after double click on menubar.
6. Default background color changed from motif1.2 to
motif2.1.
7. Xwindows Error while using insensitive sliders in
Motif 2.1.
8. dtfile dumps core in Motif 2.1 when accessing broken
link.
9. File path problem in Motif2.1 & Motif1.2.
10. Cannot convert string ":Alt Ctrl<Key>Insert" to type
VirtualBinding.
11. Java 1.2 application dumps core in FinishDrag().
12. Buffer Overflows.
13. Buffer Overflows.
14. Buffer Overflows.
15. 64-bit clients using big requests can generate
unaligned access errors.
16. Threaded clients will hang when they call
XFillPolygon().
17. PA-64 version of libXm.4 core dumps displaying
to little-endian X-Server.
18. Motif2.1 menu and dialog can hang, if timing is
right.
19. _XtOnGrabList fails to unlock the process, causes
threaded app to hang.
PHSS_21284:
1. uil man page is updated to include the use of
uil64 in 64 bit systems.
2. Warning: Urm_WCI_LookupClassDescriptor: Could not find
class descriptor for class - MrmNOT_FOUND.
3. MrmFetchLiteral returns incorrect values.
4. Cannot load icon images. Application aborts.
5. 64-bit Motif and Xt patches have old libraries
and defects.
6. Customer needs patch for 64 bit uil and libMrm.3.
7. Textfield widget aborts with error in Japanese locale.
8. 64 bit Xmu dumps core.
9. Default background is black in 64 bit Xaw.
10. XGetDefault() default does not malloc() enough memory.
11. Threaded applications may hang in XCloseDisplay()
if previous calls to XHPSetErrorHandler() and
XSetErrorHandler() have been made in the application.
12. Multi-threaded app on multi-cpu system jumps through
Display locks.
13. 64-bit app w/toggle buttons core dumps when remotely
displayed on 10.20.
PHSS_16624:
Add support for 64 bit X/Motif devkit.
Defect Description:
PHSS_27233:
1. Motif2.1 PushButtonGadgets in popup menu not being armed
correctly.
Resolution:
Motif2.1 PushButtonGadgets/CascadeButtonGadgets
in popup menu will be armed properly.
2. JAGad50435 breaks functionality of losingFocus
event for Text* Widget.
Resolution:
Removed the fix for JAGad50435.
3. Five include files have duplicate and bad
definitions of NULL.
Resolution:
NULL has been redefined to be 0L in
64-bit applications.
4. Program hangs when using menu with
button 2.
Resolution:
Set the environment variable XM_DRAG_NO_GRAB
to true (case insensitive) either from the
shell or from the application to restrict the
XServer grab during Drag.
From shell:
-----------
export XM_DRAG_NO_GRAB=true
From prog:
----------
putenv("XM_DRAG_NO_GRAB=true");
Program doesn't hang when using menu
with button 2.
5. Motif2.1 PushButtonGadget child of
XmScrolledWindow no BtnDown
Resolution:
BtnDown occurs when the child of
XmScrolledWindow is gadget in Motif2.1 .
6. Motif2.1 cannot set XmNvalue by XtVaSetValues
when LANG is ja_JP.SJIS.
Resolution:
Motif2.1 can now set XmNvalue by
XtVaSetValues when it is a multibyte
locale.
7. aCC +w -- compiler warnings from
Xlib, etc.
Resolution:
aCC +w -- compiler warnings will not be
generated.
8. RowColumn Widget size is not resized on
X11R6,MOTIF2.1.
Resolution:
RowColumn Widget gets resized.
9. xdial program aborts in 64-bit mode when
using NINE_KNOB device.
Resolution:
The code in XListInputDevices() had the potential
to force alignment problems when the Xserver
was configured with input devices with an odd
number of axes. This was fixed to ensure that
all data copies issued using data in the reply
are double-word aligned.
10.XwcTextListToTextProperty() does not handle JISX0212
characters.
Resolution:
One of the conversion routines used in the
eucJP locale had a defect when processing
JISX0212 characters. It properly converted
the characters, but it placed them in a
buffer which did not get returned to the
calling routine. This was modified to
move the converted characters to the
correct buffer.
11.Compound text may be incorrect in zh_HK.big5,
zh_TW.big5 and zh_TW.ccdc.
Resolution:
The routine used to determine the character
length based on the character data was incorrect.
This routine has been fixed to correctly
determine character lengths based on the big5
ranges.
12.Some 64-bit Xlib applications abort in UTF8
locales.
Resolution:
Some of the internal routines used when a UTF8
locale is in use had some code which was not
64-bit clean. The code has been fixed to be
clean in 64-bit environments.
13.Invalid characters in the GB18030 locale can
cause an infinite loop when processed.
Resolution:
The routines which process GB18030
characters in the GB18030 output method
used in Xlib did not properly detect
incomplete GB18030 characters. The code
was modified to detect and skip
incomplete GB18030 characters.
PHSS_25880:
1. TextF Destroy method should cancel text.select_id
timeout.
Resolution:
Text/TextF Destroy method removes
timeout id in BrowseScroll().
2. Motif Text widget has inconsistent behaviour
after losingFocus event.
Resolution:
For Motif Text widget and TextField widget
to have consistent behaviour after losing
Focus event, losing focus callback event
is invoked only when activate callback
is called.
3. Motif 2.1 applications abort when displaying
to a Sun dual screen system.
Resolution:
Motif 2.1 applications correctly display to a Sun dual
screen system by calling XtGetSelectionValue() only
with realized widget.
4. XmToggleButton in PopupMenu does not call
XmNvalueChangedCallback.
Resolution:
By testing visibility of Toggle button before invoking
menuSTrait->buttonPopdown, XmNvalueChangeCallback is called.
5. Motif2.1 scrolled window problems
(for example, in dtfile).
Resolution:
Motif2.1 scrolled window problem is
rectified.
6. Copy-paste of Japanese characters in Java,
awt.TextField pastes.
Resolution:
The problem with Copy-paste of multibyte characters
in Text/TextField is rectified.
7. "*fontList" and "*defaultFontList" resources cause
core dump.
Resolution:
Application having both "*fontList" and "*defaultFontList"
resources works fine.
8. Motif 2.1: XmStringConcat does not function
correctly.
Resolution:
The XmStringConcat function works correctly.
9. DtTerm does not output the correct escape sequence
of F1 & F10 on Non HP Xserver.
Resolution:
DtTerm outputs the escape sequence F1 & F10 correctly
on Non HP Xserver.
10.Frame does not allow to set the XmNheight/XmNwidth
for its children.
Resolution:
Compute Frame's width and height according
to the width and height values of the title
object (child of Frame) set within the
application.
11.Motif Libs & using keyboard navigation cores
at X11/R6 1.2 & 2.1.
Resolution:
Motif Libs & using keyboard navigation
works fine with X11/R6 2.1.
12.Focus goes on parent frame when modal
child dialog is active.
Resolution:
Focus does not go on parent frame when
modal child dialog is active.
13.aCC - Compiler warning in Motif header files -
BulletinBP.h, XmP.h and IntrinsicP.h.
Resolution:
Reinterpretcasting is applied for Motif header files
BulletinBP.h, XmP.h and IntrinsicP.h.
14.Overlap text string after installed PHSS_23520.
Resolution:
Overlap of text string after installing PHSS_23520
is rectified.
15.XSelectExtensionEvent() does not work properly in 64-bit
applications.
Resolution:
Fixed the code in XSelectExtensionEvent() to use the
proper data decoding macro when placing data on the
request buffer that is sent to the Xserver. The new
macro properly decodes the XEventClass data as 64-bit
data when the application is compiled in 64-bit mode.
As a result, the XEventClass data appears in the correct
location in the data stream that is sent to the Xserver.
16.aC++ warnings 740 & 749 on X11 headers on casts,
600 with +w.
Resolution:
Added a macro to do a <reinterpret_cast>
when compiling C++.
17.aCC +w "warning 600".
Resolution:
Added function types (or corrected erroneous
ones) where needed.
18.aCC reserved words used in Xlib source
code.
Resolution:
When compiling C++, #ifdef reserved words
to c_"reserved word".
19.$DISPLAY variable set to local:0.0 under
CDE with current libX11.3.
Resolution:
The default transport mechanism for local
clients was restored to the transport used
prior to the July 2001 X/Motif patches.
As a result, the $DISPLAY environment
variable (which is retrieved by XDisplayString())
is no longer modified to local:0.0.
20.VMSA app window is too large to be usable
on Linux display.
Resolution:
GetICValues() was fixed to correctly retrieve
the data located in the XNStatusAttributes
component of the input context.
21.ER: Please add internal support for
GB18030 character set.
Resolution:
Internal support for the zh_CN.gb18030
locale was added to Xlib.
PHSS_23523:
1. X11R6 libXt calls poll(2) incorrectly
Resolution:
select() is used instead of poll().
2. Missing space in error message.
Resolution:
Parsing of tab characters in XmString
is corrected.
3. Motif traits should be inherited by subclasses.
Resolution:
Motif traits are inherited by subclassses.
4. Memory leak in XmRegisterSegmentEncoding.
Resolution:
Memory leak is fixed.
5. XtDestroy of half posted popup can corrupt memory
Resolution:
The memory corruption of half posted popup is
corrected during XtDestroy.
6. Motif application crashes when there is
a tear off.
Resolution:
The Motif tear off problem is corrected.
7. dtfile permissions dialog displays small
togglebuttons.
Resolution:
The problem with the size of the toggle button
is corrected when its label string is NULL.
8. PHSS_21959 causes Oracle Forms application to
fail XmClipboardUnlock()
Resolution:
The problem with XmClipboardStartRetrieve() is
corrected by avoiding XmClipboardUnlock() call.
9. Motif2.1 CascadeB/BG double caches arrow pixmaps,
fails on XFreePixmap
Resolution:
The problem with XFreePixmap in CascadeB/BG
is corrected.
10.Application Core dumps when clicked
on a MenuShell with zero item
Resolution:
The problem in MenuShell with zero item
is corrected.
11.DtSpinBox
Resolution:
The error is eliminated by checking for
drag_context not to be NULL.
12.XFreeFontSet leaks.
Resolution:
The XFreeFontSet leak has been plugged.
13.XmbTextEscapement() can hang in a
Japanese locale.
Resolution:
Clients will no longer hang when they
process characters created in a
different multi-byte character set.
14.Problem in X11/OpenDis.c
Resolution:
Problem in X11/OpenDis.c is resolved.
15.XCreateFontSet() very slow in Japanese
locales with fonts like kanji16.
Resolution:
Performance improved.
16.Slow line drawing in X11R6.
Resolution:
Performance improved.
17.Problem in _XAsyncReply().
Resolution:
Problem in _XAsyncReply() is resolved.
18.Buffer overflows in libICE.
Resolution:
Problem of buffer overflows in libICE
is solved.
19.XHPSendDdxDriverMsg() needs extra
SyncHandle()
Resolution:
Call to SyncHandle() added.
20.XGetPixel() - wrong values on 64bit OS
when using 24bit image data from LSB
Xserver.
Resolution:
Method of retrieving image data
corrected.
21.XCreateFontSet() with invalid
base_font_name can incorrectly free()
memory.
Resolution:
XCreateFontSet() has additional
information to detect invalid
base_font_name and avoid the unnecessary
free().
PHSS_22949:
1. scrolled list increments when using 64-bit libraries.
Resolution:
scrolled list increment problem is solved in 64-bit by
avoiding truncation of the pointer.
2. UIL program does not work under Motif2.1.
Resolution:
The problem in UIL compiler is corrected.
3. Resize of dialog causes segmentation fault in
XtIsSubClass (Motif 2.1).
Resolution:
The problem with resizing of dialog is corrected.
4. Motif2.1 XmToggleButton unselectColor not properly
updated by background.
Resolution:
unselectColor is properly updated after the fix in toggle
button widget and toggle button gadget.
5. Automatic setting of XmNeditMode by
XmCreateScrolledText on 11.0 OS.
Resolution:
XmNeditMode resource of the text widget is automatically
set to avoid the unwanted behaviour.
6. XtAppAddTimeOut() callback eventually fails to get
called.
Resolution:
Problem is rectified by avoiding the removal of wrong
timer.
7. 64 bit libXp dumps core.
Resolution:
The code has been modified to solve the core dump and to
enable Xp calls to work in 32 as well as 64 bit versions.
8. libXt.3: process_lock not always released in
LookupSpringLoaded.
Resolution:
Threaded application hang is avoided by unlocking the
process.
PHSS_21962:
1. Cascade button in OptionMenu has incorrect color.
Resolution:
GC value for Cascade button gadget is updated to get the
correct color.
2. Can't get MousePress when we add XmNinputCallback to
DrawAreaWidget.
Resolution:
DrawingAreaInput call back function is added to the
Translation table for the event which occurs when
Ctrl + MB1 is pressed.
3. XmOptionMenu sizes differently Motif2.1 vs Motif 1.2.
Resolution:
Fix has been made in XmOptionMenu to have the correct
size.
4. Recent X/Motif patch cause a gui hang.
Resolution:
Pull down menu hang is corrected.
5. ButtonRelease missing after double menubar selection
on Motif2.1.
Resolution:
Pointer ungrab is done successfully after double menubar
selection.
6. Background color changed from hpux 10.20 to hpux 11.0.
Resolution:
Default background color has been changed in Motif2.1.
7. Xwindows Error while using insensitive sliders in
Motif 2.1.
Resolution:
Widget's window reference has been avoided before its
realization.
8. dtfile dumps core in Motif 2.1 when accessing broken
link.
Resolution:
NULL pointer check is implemented to avoid core dump.
9. File path problem in Motif2.1 & Motif1.2.
Resolution:
Absolute paths are used.
10. Cannot convert string ":Alt Ctrl<Key>Insert" to type
VirtualBinding.
Resolution:
Syntax error is corrected to ensure the proper
VirtualBinding.
11. Java 1.2 application dumps core in FinishDrag().
Resolution:
NULL pointer check is implemented in drag context to
avoid core dump.
12. Buffer Overflows.
Resolution:
Buffer overflow problem fixed.
13. Buffer Overflows.
Resolution:
Buffer overflow problem fixed.
14. Buffer Overflows.
Resolution:
Buffer overflow problem fixed.
15. Incorrect data alignment in _XData32() for big
requests.
Resolution:
The MakeBigReq() macro for 64-bit applications was
fixed.
16. Multithreaded Xlib application hangs in
XFillPolygon().
Resolution:
Fixed XFillPolygon() to properly handle threaded
applications.
17. PA-64 version of libXm.4 core dumps displaying
to little-endian X-Server.
Resolution:
64 bit macro is defined to avoid core dumps on
little-endian X-Server.
18. Motif2.1 menu and dialog can hang, if timing is
right.
Resolution:
Motif2.1 menu and dialog hang is avoided by successful
Ungrab.
19. _XtOnGrabList fails to unlock the process, causes
threaded app to hang.
Resolution:
Threaded application hang is avoided by unlocking the
process.
PHSS_21284:
1. Update uil page to include 64 bit uil64.
Resolution:
uil man page is updated to include the use of
uil64 in 64 bit systems.
2. 64-bit Motif has unresolved reference.
Resolution:
64 bit uil named uil64 has been created to
create 64 bit uid files.
3. 64 bit Mrm fails when int pointer is passed
in MrmFetchLiteral.
Resolution:
MrmFetchLiteral is fixed to accept int pointers.
4. Uil/Mrm couldn't work with icon uil files in 64bit.
Resolution:
uil64 has been fixed to create pixmaps from icon images.
5. 64-bit Motif and Xt patches have old libraries
and defects.
Resolution:
Latest Xt and Motif libraries are being delivered
with Apr2000 64 bit patch.
6. Customer needs patch for 64 bit uil and libMrm.3.
Resolution:
64 bit uil and libMrm.3 are being delivered with
Apr2000 64 bit X/Motif patch.
7. "X Error of failed request: BadValue" on 11.0.
Resolution:
A variable is initialized in input method to avoid
aborts in Japanese locale.
8. 64 bit Xmu dumps core.
Resolution:
64 bit changes have been made to avoid core dumps.
9. Default background is black in 64 bit Xaw.
Resolution:
64 bit changes have been made to avoid background
appearing black as default.
10. XGetDefault() default does not malloc() enough memory.
Resolution:
Fixed memory allocation to account for proper
memory length.
11. Threaded application can hang in XCloseDisplay().
Resolution:
Unlock global mutex before returning in
XHPSetErrorHandler().
12. Multi-threaded app on multi-cpu system jumps through
Display locks.
Resolution:
Changed initialization of per-display mutex type.
13. 64-bit app w/toggle buttons core dumps when remotely
displayed on 10.20.
Resolution:
Modified XFillPolygon() to be 64-bit clean.
PHSS_16624:
Add support for 64 bit X/Motif devkit.
Resolution:
Support to 64 bit X/Motif devkit.
Enhancement:
No (superseded patches contained enhancements)
PHSS_25880:
Enhancements were delivered in this patch
or one it has replaced. Please review the
Defect Description text for more information.
SR:
8606248702 8606262686 8606248773 8606221289 8606249033
8606256626 8606160385 8606264425 8606254585 8606218982
8606250225 8606247929 8606255798 8606185743 8606181215
8606185790 8606217378 8606135563 8606208244 8606217972
8606201469 8606198865 8606212385 8606167018 8606207874
8606228696 8606221764 8606223919 8606195208 8606223082
8606223083 8606217384 8606206153 8606221763 1653305649
8606135223 8606174369 8606178335 8606181931 8606182415
8606184153 8606184720 8606185347 8606187333 8606169890
8606136372 8606135039 8606145270 8606178070 8606127523
8606145273 8606188614 8606188843 8606157420 8606201477
8606107967 8606161223 8606167359 1653288472 8606147643
8606166941 8606163001 8606172972 5003441501 8606127115
8606132406 8606133112 8606134013 8606134816 8606136366
8606137245 8606137752 8606143928 8606144589 8606129475
8606137086 8606146387 8606152889 8606154956 8606112244
8606112245 8606126015 8606125865 8606114515 8606112241
8606112242 8606126890 8606128113 8606126828
Patch Files:
X11MotifDevKit.X11R6-PRG,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
X11MotifDevKit.X11R6-PRG,fr=B.11.00.03,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/X11R6/pa20_64/libXp.a
/usr/lib/pa20_64/libXp.a
/usr/lib/X11R6/pa20_64/libICE.a
/usr/lib/X11R6/pa20_64/libSM.a
/usr/lib/X11R6/pa20_64/libX11.a
/usr/lib/X11R6/pa20_64/libXIE.a
/usr/lib/X11R6/pa20_64/libXext.a
/usr/lib/X11R6/pa20_64/libXhp11.a
/usr/lib/X11R6/pa20_64/libXi.a
/usr/lib/X11R6/pa20_64/libXt.a
/usr/lib/X11R6/pa20_64/libXtst.a
/usr/lib/X11R6/pa20_64/libICE.sl
/usr/lib/X11R6/pa20_64/libSM.sl
/usr/lib/X11R6/pa20_64/libX11.sl
/usr/lib/X11R6/pa20_64/libXIE.sl
/usr/lib/X11R6/pa20_64/libXext.sl
/usr/lib/X11R6/pa20_64/libXhp11.sl
/usr/lib/X11R6/pa20_64/libXi.sl
/usr/lib/X11R6/pa20_64/libXp.sl
/usr/lib/X11R6/pa20_64/libXt.sl
/usr/lib/X11R6/pa20_64/libXtst.sl
/usr/lib/pa20_64/libICE.a
/usr/lib/pa20_64/libSM.a
/usr/lib/pa20_64/libX11.a
/usr/lib/pa20_64/libXIE.a
/usr/lib/pa20_64/libXext.a
/usr/lib/pa20_64/libXhp11.a
/usr/lib/pa20_64/libXi.a
/usr/lib/pa20_64/libXt.a
/usr/lib/pa20_64/libXtst.a
/usr/lib/pa20_64/libICE.sl
/usr/lib/pa20_64/libSM.sl
/usr/lib/pa20_64/libX11.sl
/usr/lib/pa20_64/libXIE.sl
/usr/lib/pa20_64/libXext.sl
/usr/lib/pa20_64/libXhp11.sl
/usr/lib/pa20_64/libXi.sl
/usr/lib/pa20_64/libXp.sl
/usr/lib/pa20_64/libXt.sl
/usr/lib/pa20_64/libXtst.sl
/usr/lib/X11R6/pa20_64/README
X11MotifDevKit.MOTIF21-PRG,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
X11MotifDevKit.MOTIF21-PRG,fr=B.11.00.03,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libMrm.sl
/usr/bin/X11/pa20_64/uil64
/usr/lib/Motif2.1/pa20_64/libXm.sl
/usr/lib/Motif2.1/pa20_64/libXm.a
/usr/lib/Motif2.1/pa20_64/libMrm.a
/usr/lib/pa20_64/libMrm.a
/usr/lib/pa20_64/libXm.a
/usr/lib/pa20_64/libXm.sl
/usr/lib/Motif2.1/pa20_64/libMrm.sl
X11MotifDevKit.MOTIF21-PGMAN,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
X11MotifDevKit.MOTIF21-PGMAN,fr=B.11.00.03,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/share/man/man1.Z/uil.1
X11MotifDevKit.X11R6-PRG-CTRB,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
X11MotifDevKit.X11R6-PRG-CTRB,fr=B.11.00.03,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/contrib/X11R6/lib/pa20_64/libXmu.a
/usr/lib/pa20_64/libXmu.a
/usr/lib/pa20_64/libXmu.sl
/usr/contrib/X11R6/lib/pa20_64/libXaw.a
/usr/lib/pa20_64/libXaw.a
/usr/lib/pa20_64/libXaw.sl
what(1) Output:
X11MotifDevKit.X11R6-PRG,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/X11R6/pa20_64/libXp.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2001 Patch Release
(build date: Thu Dec 21 00:06:24 IST 2000)
/usr/lib/pa20_64/libXp.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2001 Patch Release
(build date: Thu Dec 21 00:06:24 IST 2000)
/usr/lib/X11R6/pa20_64/libICE.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:49 IST 2002)
/usr/lib/X11R6/pa20_64/libSM.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:04:20 IST 2002)
/usr/lib/X11R6/pa20_64/libX11.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 19:53:36 IST 2002)
/usr/lib/X11R6/pa20_64/libXIE.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:48:08 IST 2001)
/usr/lib/X11R6/pa20_64/libXext.a:
Built for: 11.EP9910 on HP-UX Daily, -O +Onolimit
X Window System, Version 11 R6
(build date: Thu Feb 17 10:36:51 MST 2000)
/usr/lib/X11R6/pa20_64/libXhp11.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jul
y 2001 Patch Release
(build date: Thu Jun 14 15:00:19 IST 2001)
/usr/lib/X11R6/pa20_64/libXi.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:45:31 IST 2002)
/usr/lib/X11R6/pa20_64/libXt.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:20:37 IST 2002)
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:04:20 IST 2002)
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:49 IST 2002)
/usr/lib/X11R6/pa20_64/libXtst.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:56:37 IST 2001)
/usr/lib/X11R6/pa20_64/libICE.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:33 IST 2002)
/usr/lib/X11R6/pa20_64/libSM.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:03:59 IST 2002)
/usr/lib/X11R6/pa20_64/libX11.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 19:52:08 IST 2002)
/usr/lib/X11R6/pa20_64/libXIE.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:47:58 IST 2001)
/usr/lib/X11R6/pa20_64/libXext.sl:
Built for: 11.EP9910 on HP-UX Daily, -O +Onolimit
X Window System, Version 11 R6
(build date: Thu Feb 17 10:36:48 MST 2000)
/usr/lib/X11R6/pa20_64/libXhp11.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jul
y 2001 Patch Release
(build date: Thu Jun 14 15:00:07 IST 2001)
/usr/lib/X11R6/pa20_64/libXi.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:45:22 IST 2002)
/usr/lib/X11R6/pa20_64/libXp.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2001 Patch Release
(build date: Thu Dec 21 00:06:01 IST 2000)
/usr/lib/X11R6/pa20_64/libXt.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:20:27 IST 2002)
/usr/lib/X11R6/pa20_64/libXtst.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:56:29 IST 2001)
/usr/lib/pa20_64/libICE.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:49 IST 2002)
/usr/lib/pa20_64/libSM.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:04:20 IST 2002)
/usr/lib/pa20_64/libX11.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 19:53:36 IST 2002)
/usr/lib/pa20_64/libXIE.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:48:08 IST 2001)
/usr/lib/pa20_64/libXext.a:
Built for: 11.EP9910 on HP-UX Daily, -O +Onolimit
X Window System, Version 11 R6
(build date: Thu Feb 17 10:36:51 MST 2000)
/usr/lib/pa20_64/libXhp11.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jul
y 2001 Patch Release
(build date: Thu Jun 14 15:00:19 IST 2001)
/usr/lib/pa20_64/libXi.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:45:31 IST 2002)
/usr/lib/pa20_64/libXt.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:20:37 IST 2002)
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:04:20 IST 2002)
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:49 IST 2002)
/usr/lib/pa20_64/libXtst.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:56:37 IST 2001)
/usr/lib/pa20_64/libICE.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:33 IST 2002)
/usr/lib/pa20_64/libSM.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:03:59 IST 2002)
/usr/lib/pa20_64/libX11.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 19:52:08 IST 2002)
/usr/lib/pa20_64/libXIE.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:47:58 IST 2001)
/usr/lib/pa20_64/libXext.sl:
Built for: 11.EP9910 on HP-UX Daily, -O +Onolimit
X Window System, Version 11 R6
(build date: Thu Feb 17 10:36:48 MST 2000)
/usr/lib/pa20_64/libXhp11.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jul
y 2001 Patch Release
(build date: Thu Jun 14 15:00:07 IST 2001)
/usr/lib/pa20_64/libXi.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:45:22 IST 2002)
/usr/lib/pa20_64/libXp.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2001 Patch Release
(build date: Thu Dec 21 00:06:01 IST 2000)
/usr/lib/pa20_64/libXt.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:20:27 IST 2002)
/usr/lib/pa20_64/libXtst.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Jan
uary 2002 Patch Release
(build date: Mon Dec 10 21:56:29 IST 2001)
/usr/lib/X11R6/pa20_64/README:
None
X11MotifDevKit.MOTIF21-PRG,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libMrm.sl:
View: /view/x_r6apr0064_1100, Build Type: r6apr0064_
1100
motif2.1
(build date: Tue Mar 28 20:18:01 IST 2000)
/usr/bin/X11/pa20_64/uil64:
View: /view/x_r6aug02_1100, Build Type: r6aug02_1100
motif2.1
(build date: Mon Jun 10 11:46:40 IST 2002)
Motif Version 2.1.0
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:04:20 IST 2002)
X Window System, Version 11 R6+ HP-UX B.11.00.00 X/M
otif Periodic Patch Release
(build date: Fri Jun 7 20:01:49 IST 2002)
CUPROS_IC19 //1
/ux/core/libs/libc/archive_pa2_64/libc.a_ID
Sep 9 1997 12:45:27
/usr/lib/Motif2.1/pa20_64/libXm.sl:
View: /view/x_r6aug02_1100, Build Type: r6aug02_1100
motif2.1
(build date: Mon Jun 17 16:26:33 IST 2002)
Motif Version 2.1.0
/usr/lib/Motif2.1/pa20_64/libXm.a:
Motif Version 2.1.0
View: /view/x_r6aug02_1100, Build Type: r6aug02_1100
motif2.1
(build date: Mon Jun 17 16:27:03 IST 2002)
/usr/lib/Motif2.1/pa20_64/libMrm.a:
View: /view/x_r6apr0064_1100, Build Type: r6apr0064_
1100
motif2.1
(build date: Tue Mar 28 20:19:12 IST 2000)
/usr/lib/pa20_64/libMrm.a:
View: /view/x_r6apr0064_1100, Build Type: r6apr0064_
1100
motif2.1
(build date: Tue Mar 28 20:19:12 IST 2000)
/usr/lib/pa20_64/libXm.a:
Motif Version 2.1.0
View: /view/x_r6aug02_1100, Build Type: r6aug02_1100
motif2.1
(build date: Mon Jun 17 16:27:03 IST 2002)
/usr/lib/pa20_64/libXm.sl:
View: /view/x_r6aug02_1100, Build Type: r6aug02_1100
motif2.1
(build date: Mon Jun 17 16:26:33 IST 2002)
Motif Version 2.1.0
/usr/lib/Motif2.1/pa20_64/libMrm.sl:
View: /view/x_r6apr0064_1100, Build Type: r6apr0064_
1100
motif2.1
(build date: Tue Mar 28 20:18:01 IST 2000)
X11MotifDevKit.MOTIF21-PGMAN,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/share/man/man1.Z/uil.1:
None
X11MotifDevKit.X11R6-PRG-CTRB,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/contrib/X11R6/lib/pa20_64/libXmu.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Aug
ust 2000 Patch Release
(build date: Fri Aug 11 23:27:03 IST 2000)
/usr/lib/pa20_64/libXmu.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Aug
ust 2000 Patch Release
(build date: Fri Aug 11 23:27:03 IST 2000)
/usr/lib/pa20_64/libXmu.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Aug
ust 2000 Patch Release
(build date: Fri Aug 11 23:26:16 IST 2000)
/usr/contrib/X11R6/lib/pa20_64/libXaw.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Aug
ust 2000 Patch Release
(build date: Fri Aug 11 23:12:41 IST 2000)
/usr/lib/pa20_64/libXaw.a:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Aug
ust 2000 Patch Release
(build date: Fri Aug 11 23:12:41 IST 2000)
/usr/lib/pa20_64/libXaw.sl:
X Window System, Version 11 R6+ HP-UX B.11.00.00 Aug
ust 2000 Patch Release
(build date: Fri Aug 11 23:12:22 IST 2000)
cksum(1) Output:
X11MotifDevKit.X11R6-PRG,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
313598459 79302 /usr/lib/X11R6/pa20_64/libXp.a
313598459 79302 /usr/lib/pa20_64/libXp.a
2935712620 208860 /usr/lib/X11R6/pa20_64/libICE.a
328556790 83572 /usr/lib/X11R6/pa20_64/libSM.a
3152334727 2672472 /usr/lib/X11R6/pa20_64/libX11.a
741149571 151940 /usr/lib/X11R6/pa20_64/libXIE.a
4124122251 216268 /usr/lib/X11R6/pa20_64/libXext.a
415317988 115222 /usr/lib/X11R6/pa20_64/libXhp11.a
1582857104 101386 /usr/lib/X11R6/pa20_64/libXi.a
812648234 1187684 /usr/lib/X11R6/pa20_64/libXt.a
3035474134 44366 /usr/lib/X11R6/pa20_64/libXtst.a
2347394729 120552 /usr/lib/X11R6/pa20_64/libICE.sl
3062006052 62552 /usr/lib/X11R6/pa20_64/libSM.sl
3061399463 1368552 /usr/lib/X11R6/pa20_64/libX11.sl
3123401202 90160 /usr/lib/X11R6/pa20_64/libXIE.sl
1054183692 128832 /usr/lib/X11R6/pa20_64/libXext.sl
4200732537 55136 /usr/lib/X11R6/pa20_64/libXhp11.sl
2530605406 54968 /usr/lib/X11R6/pa20_64/libXi.sl
4229353594 50512 /usr/lib/X11R6/pa20_64/libXp.sl
635037450 540768 /usr/lib/X11R6/pa20_64/libXt.sl
150825372 33976 /usr/lib/X11R6/pa20_64/libXtst.sl
2935712620 208860 /usr/lib/pa20_64/libICE.a
328556790 83572 /usr/lib/pa20_64/libSM.a
3152334727 2672472 /usr/lib/pa20_64/libX11.a
741149571 151940 /usr/lib/pa20_64/libXIE.a
4124122251 216268 /usr/lib/pa20_64/libXext.a
415317988 115222 /usr/lib/pa20_64/libXhp11.a
1582857104 101386 /usr/lib/pa20_64/libXi.a
812648234 1187684 /usr/lib/pa20_64/libXt.a
3035474134 44366 /usr/lib/pa20_64/libXtst.a
2347394729 120552 /usr/lib/pa20_64/libICE.sl
3062006052 62552 /usr/lib/pa20_64/libSM.sl
3061399463 1368552 /usr/lib/pa20_64/libX11.sl
3123401202 90160 /usr/lib/pa20_64/libXIE.sl
1054183692 128832 /usr/lib/pa20_64/libXext.sl
4200732537 55136 /usr/lib/pa20_64/libXhp11.sl
2530605406 54968 /usr/lib/pa20_64/libXi.sl
4229353594 50512 /usr/lib/pa20_64/libXp.sl
635037450 540768 /usr/lib/pa20_64/libXt.sl
150825372 33976 /usr/lib/pa20_64/libXtst.sl
2004441841 1139 /usr/lib/X11R6/pa20_64/README
X11MotifDevKit.MOTIF21-PRG,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
1092590947 222056 /usr/lib/pa20_64/libMrm.sl
1604085103 3961376 /usr/bin/X11/pa20_64/uil64
2277454659 2987848 /usr/lib/Motif2.1/pa20_64/libXm.sl
1882028218 5368908 /usr/lib/Motif2.1/pa20_64/libXm.a
2258355543 364886 /usr/lib/Motif2.1/pa20_64/libMrm.a
2258355543 364886 /usr/lib/pa20_64/libMrm.a
1882028218 5368908 /usr/lib/pa20_64/libXm.a
2277454659 2987848 /usr/lib/pa20_64/libXm.sl
1092590947 222056 /usr/lib/Motif2.1/pa20_64/libMrm.sl
X11MotifDevKit.MOTIF21-PGMAN,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
46080089 2458 /usr/share/man/man1.Z/uil.1
X11MotifDevKit.X11R6-PRG-CTRB,fr=B.11.00.01,
fa=HP-UX_B.11.00_32/64,v=HP:
4082048363 226036 /usr/contrib/X11R6/lib/pa20_64/libXmu.a
4082048363 226036 /usr/lib/pa20_64/libXmu.a
122785612 125784 /usr/lib/pa20_64/libXmu.sl
763152983 749890 /usr/contrib/X11R6/lib/pa20_64/libXaw.a
763152983 749890 /usr/lib/pa20_64/libXaw.a
166400114 419000 /usr/lib/pa20_64/libXaw.sl
Patch Conflicts: None
Patch Dependencies:
s700: 11.00: PHSS_27232 PHSS_27231
s800: 11.00: PHSS_27232 PHSS_27231
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHSS_16624 PHSS_21284 PHSS_21962 PHSS_22949 PHSS_23523 PHSS_25880
Equivalent Patches:
PHSS_27235:
s700: 11.11
s800: 11.11
Patch Package Size: 15260 KBytes
Installation Instructions:
Please review all instructions and the Hewlett-Packard
SupportLine User Guide or your Hewlett-Packard support terms
and conditions for precautions, scope of license,
restrictions, and, limitation of liability and warranties,
before installing this patch.
------------------------------------------------------------
1. Back up your system before installing a patch.
2. Login as root.
3. Copy the patch to the /tmp directory.
4. Move to the /tmp directory and unshar the patch:
cd /tmp
sh PHSS_27233
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHSS_27233.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHSS_27233. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
WARNING: If patch_save_files is false when a patch is installed,
the patch cannot be deinstalled. Please be careful
when using this feature.
For future reference, the contents of the PHSS_27233.text file is
available in the product readme:
swlist -l product -a readme -d
/tmp/PHSS_27233.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHSS_27233.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
-----End of Document ID: PHSS_27233------------------------------------------
Document ID: PHKL_27688
Date Loaded: 20020815
Title: s700_800 11.11 Over-temp/LPMC Panic
Patch Name: PHKL_27688
Patch Description: s700_800 11.11 Over-temp/LPMC Panic
Creation Date: 02/08/14
Post Date: 02/08/15
Hardware Platforms - OS Releases:
s700: 11.11
s800: 11.11
Products: N/A
Filesets:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP
Automatic Reboot?: Yes
Status: General Release
Critical:
Yes
PHKL_27688: PANIC
Category Tags:
defect_repair general_release critical panic
Path Name: /hp-ux_patches/s700_800/11.X/PHKL_27688
Symptoms:
PHKL_27688:
( SR:8606231975 CR:JAGae01211 )
A system panics when an over-temperature ENVironmental
event (ENV) is followed by a Low Priority Machine Check
(LPMC).
Panic String:
Trap Type 18 (Data memory protection fault):
Stack trace:
0) panic+0x14
1) report_trap_or_int_and_panic+0x84
2) interrupt+0x1d4
3) $ihndlr_rtn+0x0
4) diag2_log+0x620
5) diag_log+0x20
6) log_lpmcs+0x78
7) lpmc_lumberjack+0x4c
8) invoke_callouts_for_self+0xc0
9) sw_service+0xb0
10) mp_ext_interrupt+0x150
11) ivti_patch_to_nop3+0x0
12) idle+0xaa8
13) swidle_exit+0x0
The panic stack trace can differ from the stack
trace shown here. However, diag2_log will always
be involved.
Defect Description:
PHKL_27688:
( SR:8606231975 CR:JAGae01211 )
The diag2 driver was not checking for address alignment
when logging events into a kernel buffer.
All logging events, except ENV (ENVironmental logging
event), are of even length and, hence, word-aligned.
Each logging event was entered into the diag2 driver's
logging buffer immediately after the preceeding logging
record. Since all logging records, except ENV, are of
even length, the subsequent logging record would be
written to a word-aligned address.
The ENV (over-temperature) record is of odd length.
After an ENV was logged, the next event logged (which, in
all reported panics, has been an LPMC) would hit a
non-word-aligned address, causing a system panic.
Although, in all reported cases, the panic occurred when
an LPMC was reported, theoretically, it could occur when
any record was logged. The panic always occurred when
attempting to log a record AFTER an over-temp condition
was successfully logged.
Since the over-temp record was logged successfully, it
was not in the panic stack trace and it would not
be obvious that an over-temp condition had occurred.
Resolution:
The diag2 driver code has been modified to write to and
read from word-aligned addresses in the kernel logging
buffer. No event can be written to a non-word-aligned
address.
SR:
8606231975
Patch Files:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
/usr/conf/lib/libwsio.a(diag2.o)
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
/usr/conf/lib/libwsio.a(diag2.o)
what(1) Output:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
/usr/conf/lib/libwsio.a(diag2.o):
diag2.c $Date: 2002/08/08 12:45:49 $Revision: r11.11
/1 PATCH_11.11 (PHKL_27688)
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
/usr/conf/lib/libwsio.a(diag2.o):
diag2.c $Date: 2002/08/08 12:45:49 $Revision: r11.11
/1 PATCH_11.11 (PHKL_27688)
cksum(1) Output:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
3032083725 16464 /usr/conf/lib/libwsio.a(diag2.o)
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
3214042851 42200 /usr/conf/lib/libwsio.a(diag2.o)
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies: None
Supersedes: None
Equivalent Patches:
PHKL_26001:
s700: 11.00
s800: 11.00
Patch Package Size: 80 KBytes
Installation Instructions:
Please review all instructions and the Hewlett-Packard
SupportLine User Guide or your Hewlett-Packard support terms
and conditions for precautions, scope of license,
restrictions, and, limitation of liability and warranties,
before installing this patch.
------------------------------------------------------------
1. Back up your system before installing a patch.
2. Login as root.
3. Copy the patch to the /tmp directory.
4. Move to the /tmp directory and unshar the patch:
cd /tmp
sh PHKL_27688
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHKL_27688.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHKL_27688. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
WARNING: If patch_save_files is false when a patch is installed,
the patch cannot be deinstalled. Please be careful
when using this feature.
For future reference, the contents of the PHKL_27688.text file is
available in the product readme:
swlist -l product -a readme -d
/tmp/PHKL_27688.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHKL_27688.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
-----End of Document ID: PHKL_27688------------------------------------------
Document ID: PHKL_26938
Date Loaded: 20020815
Title: s700_800 11.11 Preemption,VM allocation,Psets,PRM mem group
Patch Name: PHKL_26938
Patch Description: s700_800 11.11 Preemption,VM allocation,Psets,PRM mem group
Creation Date: 02/05/01
Post Date: 02/08/15
Hardware Platforms - OS Releases:
s700: 11.11
s800: 11.11
Products: N/A
Filesets:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP
Automatic Reboot?: Yes
Status: General Release
Critical:
Yes
PHKL_26938: PANIC
PHKL_26549: PANIC
PHKL_25304: OTHER
Because of the defect, MRG based paging could
result in some MRGs being targeted more harshly
than others. Applications in those MRGs that
are targeted more may lose almost all their
pages of memory and eventually get swapped out.
The problem could also manifest itself in
another fashion wherein applications belonging
to the MRGs that are being targeted more than
others, experience a performance degradation.
This patch corrects the limitations of the
paging and process deactivation logic and
therefore prevents these problems from occuring.
PHKL_23445: ABORT
The application falsely believes an "out of memory"
condition has occurred and reacts according to its
logic, possibly resulting in an abort.
Category Tags:
defect_repair enhancement general_release critical panic
halts_system
Path Name: /hp-ux_patches/s700_800/11.X/PHKL_26938
Symptoms:
PHKL_26938:
( SR:8606249546 CR:JAGae15936 )
When using the Process Resource Manager (PRM) to manage
memory groups, EXEC_MAGIC processes (with private text)
migrating from one memory group to another may cause a
Data Page Fault system panic. If a dump is taken, it
shows the panicing process in the function
mrg_break_cow_core() or possibly in the function
virtual_fault(). A typical stack trace will be:
...
mrg_break_cow_core+0xb4
for_val2+0x2c0
for_val2+0x224
foreach_chunk+0x3c
mrg_break_priv_cow+0x8c
mrg_self_move+0x394
syscall+0xb54
syscallinit+0x554
PHKL_26549:
( SR:8606234459 CR:JAGae03659 )
The PRM (Process Resource Management) tool can cause a panic
with a kernel page fault under memory pressure, during VHAND
(pager daemon) execution.
The stack trace for this defect looks like this:
stack trace for event 0
crash event was a panic
panic+0x6c
report_trap_or_int_and_panic+0x94
trap+0xed4
nokgdb+0x8
mrg_break_cow_core+0x110
for_val2+0x1b4
foreach_chunk+0x3c
mrg_break_priv_cow+0x8c
mrg_self_move+0x394
syscall+0xb54
$syscallrtn+0x0
Disabling the PRM tool makes the symptom disappear, but
reduces the functionality of the system.
PHKL_25304:
( SR:8606184381 CR:JAGad53590 )
MRGs fail to provide minimum entitlements under extreme
memory pressure conditions.
PHKL_23908:
( SR:8606128017 CR:JAGac78818 )
If a system is under a heavy application load, time
critical processes such as realtime heartbeat
process threads may not be scheduled to run while
the pager is reducing the memory pressure. This
delay may cause time critical processes to timeout.
For example, ServiceGuard may failover. There are
many causes of delay while the system is under a
heavy application load; this change addresses only
one, and may not alleviate all delay for all
process loads.
This problem will most likely be seen on systems
with one or two processors.
PHKL_24566:
( SR:8606200799 CR:JAGad69975 )
This patch is a member of a set of patches needed to enable
the HP-UX Processor Sets product (PROCSETS). When PROCSETS
product is installed, it will install the full set of
required patches for that product, including this patch.
If the HP-UX Processor Sets product is not installed, this
change will have no impact on your system.
PHKL_23445:
( SR:8606172440 CR:JAGad41700 )
The system will behave as if it was out of kernel memory,
even when memory is still available.
Defect Description:
PHKL_26938:
( SR:8606249546 CR:JAGae15936 )
The mrg_break_cow_core() function processes an incorrect
range of addresses for some part of the private address
space. The computation of the range is incorrect.
Resolution:
The computation of the range of addresses processed by
mrg_break_cow_core() has been corrected.
PHKL_26549:
( SR:8606234459 CR:JAGae03659 )
Page fault in the kernel, in mrg_cow_core(), caused by
a invalid page obtained from the virtual memory subsytem
after a race condition with the swapper daemon (VHAND).
Resolution:
The function returning the invalid page is called again
when the race with VHAND is detected, until a valid page
is obtained.
PHKL_25304:
( SR:8606184381 CR:JAGad53590 )
When an MRGs is under memory pressure it may be allowed
to consume more memory than its fixed quota, upto its
maximum allowable import limit. However, when the memory
pressure in the remaining MRGs risies, the MRGs exceeding
their fixed quotas should return the excess memory. This
is not happening in a consistent manner, resulting in
some MRGs not getting their fair share when they request
for memory.
Resolution:
The system-wide paging and process deactivation alrogithms
were revised to ensure that all MRGs get paged accordingly
when the system is under extreme memory pressure. The
MRGs that are consuming more memory than their fixed quota
are forced to return the excess amount before other MRGs
on the system are targeted for paging.
PHKL_23908:
( SR:8606128017 CR:JAGac78818 )
Time critical process threads will not be scheduled
to run until there is an available processor.
There are instances in the kernel where a process
thread may not be scheduled to run even when it is
the highest priority process thread. This occurs
when another process thread is executing on a
processor and must complete a time consuming task
before releasing the processor. There are several
such places in the kernel; this patch addresses one
specific kernel path.
When the system is under memory pressure, the pager
addresses this pressure by freeing a specified
number of pages. While the pager is running, no
other process threads may be scheduled on that
processor until the quota of free pages is met. The
amount of work performed along this path is
proportional to memory pressure and thus impacts
delay time of waiting process threads.
This problem will most likely be seen on systems
with one or two processors when all processors are
executing along these long kernel paths.
Resolution:
This patch enables kernel preemption along the
kernel pager paths: If the system pager has been
executing within the kernel for over a specified
period of time, the kernel will preempt the pager
and schedule a higher priority process thread to
run. The pager will be placed back on the run queue
to resume where it left off in the kernel once
rescheduled.
The scheduler dictates the kernel execution time
allotted to a single process and the policies
governing which process priorities may preempt the
current process.
This enhancement may not necessarily improve
performance or response time for all processes as
the pager may not be executing along these
preemptible paths.
PHKL_24566:
( SR:8606200799 CR:JAGad69975 )
This patch contains minor enhancements required to support
the HP-UX Processor Sets product.
Resolution:
Enhancements added to access per processor set run queue
of posix realtime scheduler when Processor Sets product
is enabled.
PHKL_23445:
( SR:8606172440 CR:JAGad41700 )
A kernel memory allocation failure can occur when an
attempt to allocate memory is made with spinlocks held, even
if there is a lot of free memory available on the system.
To prevent system errors caused from holding spinlocks for
too long, kernel memory allocation is disabled for
processes that hold spinlocks if the superpage pool has not
been filled. This is because filling the superpage pool
normally takes longer than a process is allowed to hold a
splinlock. The superpage pool remains empty until another
request for memory is made on the superpage pool by a
process that does not hold spinlocks.
Resolution:
A one-page-cache of superpages was created for use by
processes that attempt to allocate memory while holding
spinlocks. This one-page-cache is filled up asynchronously
through the schedpaging() daemon. When a memory request
comes in from a process that holds spinlocks and the
superpage pool, has not been filled, we allocate memory from
the 4K pool of free pages for that request, and also mark
the one-page-cache to be asynchronously filled up by the
schedpaging() daemon. So, even if the superpage pool is not
filled soon, we still have the one-page-cache to get memory
from for subsequent
requests.
SR:
8606128017 8606172440 8606184381 8606200799 8606234459
8606249546
Patch Files:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
/usr/conf/lib/libvm.a(subr_mrg.o)
/usr/conf/lib/libvm.a(vm_arena_gc.o)
/usr/conf/lib/libvm.a(vm_kalloc.o)
/usr/conf/lib/libvm.a(vm_mrg.o)
/usr/conf/lib/libvm.a(vm_sched.o)
/usr/conf/lib/libvm.a(vm_vhand.o)
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
/usr/conf/lib/libvm.a(subr_mrg.o)
/usr/conf/lib/libvm.a(vm_arena_gc.o)
/usr/conf/lib/libvm.a(vm_kalloc.o)
/usr/conf/lib/libvm.a(vm_mrg.o)
/usr/conf/lib/libvm.a(vm_sched.o)
/usr/conf/lib/libvm.a(vm_vhand.o)
what(1) Output:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
/usr/conf/lib/libvm.a(subr_mrg.o):
subr_mrg.c $Date: 2002/04/23 11:29:46 $Revision: r11
.11/3 PATCH_11.11 (PHKL_26938)
/usr/conf/lib/libvm.a(vm_arena_gc.o):
vm_arena_gc.c $Date: 2001/02/26 11:47:24 $Revision:
r11.11/1 PATCH_11.11 (PHKL_23445)
/usr/conf/lib/libvm.a(vm_kalloc.o):
vm_kalloc.c $Date: 2001/02/26 11:47:24 $Revision: r1
1.11/1 PATCH_11.11 (PHKL_23445)
/usr/conf/lib/libvm.a(vm_mrg.o):
vm_mrg.c $Date: 2001/09/18 14:26:14 $Revision: r11.1
1/1 PATCH_11.11 (PHKL_25304)
/usr/conf/lib/libvm.a(vm_sched.o):
vm_sched.c $Date: 2001/09/18 14:33:20 $Revision: r11
.11/3 PATCH_11.11 (PHKL_25304)
/usr/conf/lib/libvm.a(vm_vhand.o):
vm_vhand.c $Date: 2001/09/18 14:32:11 $Revision: r11
.11/3 PATCH_11.11 (PHKL_25304)
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
/usr/conf/lib/libvm.a(subr_mrg.o):
subr_mrg.c $Date: 2002/04/23 11:29:46 $Revision: r11
.11/3 PATCH_11.11 (PHKL_26938)
/usr/conf/lib/libvm.a(vm_arena_gc.o):
vm_arena_gc.c $Date: 2001/02/26 11:47:24 $Revision:
r11.11/1 PATCH_11.11 (PHKL_23445)
/usr/conf/lib/libvm.a(vm_kalloc.o):
vm_kalloc.c $Date: 2001/02/26 11:47:24 $Revision: r1
1.11/1 PATCH_11.11 (PHKL_23445)
/usr/conf/lib/libvm.a(vm_mrg.o):
vm_mrg.c $Date: 2001/09/18 14:26:14 $Revision: r11.1
1/1 PATCH_11.11 (PHKL_25304)
/usr/conf/lib/libvm.a(vm_sched.o):
vm_sched.c $Date: 2001/09/18 14:33:20 $Revision: r11
.11/3 PATCH_11.11 (PHKL_25304)
/usr/conf/lib/libvm.a(vm_vhand.o):
vm_vhand.c $Date: 2001/09/18 14:32:11 $Revision: r11
.11/3 PATCH_11.11 (PHKL_25304)
cksum(1) Output:
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
1311554400 32196 /usr/conf/lib/libvm.a(subr_mrg.o)
3828220996 7520 /usr/conf/lib/libvm.a(vm_arena_gc.o)
1718682805 15972 /usr/conf/lib/libvm.a(vm_kalloc.o)
4073366897 24168 /usr/conf/lib/libvm.a(vm_mrg.o)
604155021 29248 /usr/conf/lib/libvm.a(vm_sched.o)
1626364348 23404 /usr/conf/lib/libvm.a(vm_vhand.o)
OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
670440265 73640 /usr/conf/lib/libvm.a(subr_mrg.o)
619904771 18864 /usr/conf/lib/libvm.a(vm_arena_gc.o)
150471019 43424 /usr/conf/lib/libvm.a(vm_kalloc.o)
3324242099 56960 /usr/conf/lib/libvm.a(vm_mrg.o)
2737964764 75384 /usr/conf/lib/libvm.a(vm_sched.o)
2807312146 51568 /usr/conf/lib/libvm.a(vm_vhand.o)
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHKL_26549 PHKL_25304 PHKL_24566 PHKL_23908 PHKL_23445
Equivalent Patches: None
Patch Package Size: 490 KBytes
Installation Instructions:
Please review all instructions and the Hewlett-Packard
SupportLine User Guide or your Hewlett-Packard support terms
and conditions for precautions, scope of license,
restrictions, and, limitation of liability and warranties,
before installing this patch.
------------------------------------------------------------
1. Back up your system before installing a patch.
2. Login as root.
3. Copy the patch to the /tmp directory.
4. Move to the /tmp directory and unshar the patch:
cd /tmp
sh PHKL_26938
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHKL_26938.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHKL_26938. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
WARNING: If patch_save_files is false when a patch is installed,
the patch cannot be deinstalled. Please be careful
when using this feature.
For future reference, the contents of the PHKL_26938.text file is
available in the product readme:
swlist -l product -a readme -d
/tmp/PHKL_26938.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHKL_26938.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions:
PHKL_23908: There are three patches providing similar
kernel preemption enhancements: PHKL_23908, PHKL_23944,
PHKL_23946. Each of these may be useful in preventing a
time critical process thread time-out. However, these
patches, installed either individually or collectively, may
not necessarily improve performance or response time for all
processes as the process threads causing the delay may not
be executing along these preemptible paths. Each of these
patches is independent of the others; they may be installed
separately or in any combination, and in any order. Each
provides kernel preemption for a specific long running
kernel path.
-----End of Document ID: PHKL_26938------------------------------------------
Document ID: PHCO_27004
Date Loaded: 20020815
Title: s700_800 11.00 login(1) cumulative patch
Patch Name: PHCO_27004
Patch Description: s700_800 11.00 login(1) cumulative patch
Creation Date: 02/07/24
Post Date: 02/08/15
Hardware Platforms - OS Releases:
s700: 11.00
s800: 11.00
Products: N/A
Filesets:
OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
Automatic Reboot?: No
Status: General Release
Critical: No
Category Tags:
defect_repair enhancement general_release
Path Name: /hp-ux_patches/s700_800/11.X/PHCO_27004
Symptoms:
PHCO_27004:
( SR:8606139538 CR:JAGad08841 )
This is an enhancement request to improve performance of
login(1). If large numbers of simultaneous login sessions
are opened, system could appear to hang due to the login(1)
performance behavior.
PHCO_25590:
( SR:8606222718 CR:JAGad91830 )
Login may exit without printing an appropriate message when
an account is expired or disabled.
( SR:8606224513 CR:JAGad93601 )
Login may behave unexpectedly on large terminal imputs.
PHCO_24083:
( SR:8606186198 CR:JAGad55403 )
The TERM environment variable is not carried across the
session on the first login after an expired password change.
( SR:8606189604 CR:JAGad58818 )
Login allows certain shell users excessive freedom.
( SR:8606170322 CR:JAGad39586 )
Dialup passwd prompts are not always displayed when
appropriate.
PHCO_19292:
- login(1) is using stale password on NIS client
- login(1) silently truncates HOME directory paths near
supported limit
PHCO_18572:
- login does not work well when exported homedir does not
have permission to root.
- Sub-login feature of login(1) (using chroot) dumps core
PHCO_16309:
- telnet login timeout at about 1 minute.
- login allows more than one login per user.
- /etc/nologin feature is not implemented.
- login without a home dir is allowed.
- trusted tty name missing from login error message.
- Ilogin fails to get credentials under csh.
Defect Description:
PHCO_27004:
( SR:8606139538 CR:JAGad08841 )
Linear scanning of utmp entries causes unacceptable
performance problems when large numbers of simultaneous
login sessions are initiated.
Resolution:
A new faster libc interface has been implemented to
address the login(1) performance problem. If the new
libc interface exists on the system, login(1) will gain
performance improvement. But if the new libc interface
does not exist on the system, the login(1) performance
remains unchanged.
PHCO_25590:
( SR:8606222718 CR:JAGad91830 )
Login does not correctly handle a return code from PAM
indicating that an account is disabled or expired.
Resolution:
Login now prints out an appropriate message when it
receives the expired return code from PAM.
( SR:8606224513 CR:JAGad93601 )
User input to login is not appropriately verified to ensure
that it does not overflow an internally allocated buffer.
Resolution:
A check has been put into place to ensure that user input
does not exceed the allowable size.
PHCO_24083:
( SR:8606186198 CR:JAGad55403 )
When login exec's itself after a password change, incorrect
command line options are passed, causing the setting of the
TERM environment variable to be lost.
Resolution:
Login now correctly re-exec's itself after an expired
password change.
( SR:8606189604 CR:JAGad58818 )
Login should be more stringent in which environment
variables it allows restricted shell users to set.
Resolution:
Login now only allows the DISPLAY and TERM variables to be
set by restricted shell users unless configured otherwise in
the security configuration file. To change the behavior of
this patch, an /etc/default/security file must be created if
it does not already exist. This file should be world
readable and root writeable. To this file, add one of the
following three entries:
The new default behavior corresponds to a setting of:
RSH_SECURITY=2
It is possible to ease the restrictions and allow the
setting of any environment variables which are not known to
be potentially risky. This is done by specifying:
RSH_SECURITY=1
Finally, for compatibility reasons, it is possible to revert
to the old, excessively permissive behavior by specifying:
RSH_SECURITY=0
( SR:8606170322 CR:JAGad39586 )
Login presents the user an incorrect number of prompts when
dialup passwords are in effect.
Resolution:
Login now displays the correct number of prompts.
PHCO_19292:
1. When password expired for NIS user login uses
stale password
Resolution:
Do a forced flush of cache in yp_match() by dynamic
relinking libnsl.1 with login and get the modified
password.
2. If home dir is more than 59 chars HOME dir path is
truncated to 59 chars
Resolution:
Increase the homedir local space to accomodate "HOME=".
PHCO_18572:
1. PAM problem with login on 11.00
Resolution:
Do chdir() again after setting credentials.
2. login dumps core when using chroot with sub-login feature
Resolution:
Do not free the PAM handler again.
PHCO_16309:
1. ER: telnet login timeout is not configurable.
Resolution:
Configurable using /etc/default/security file
2. ER: the number of logins per user is not configurable.
Resolution:
Can be configured using /etc/default/security file
3. ER: /etc/nologin feature is not implemented.
Resolution:
NOLOGIN can be configured using /etc/default/security file
4. ER: login without a home dir is not configurable.
Resolution:
Can be configured using /etc/default/security file
5. trusted tty name missing from login error message.
Resolution:
Corrected the error message.
6. Ilogin credentials destroyed by ilogind under csh.
Resolution:
End the PAM session after the credentials are obtained
SR:
5003465468 5003463232 1653297903 1653054304 5003230300
5003325886 1653191825 1653229351 4701396499 8606186198
5003466847 4701425710 8606189604 8606170322 8606224513
8606222718 8606139538
Patch Files:
OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/bin/login
what(1) Output:
OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/bin/login:
$Revision: 82.16.1.15 $
PATCH_11_00: login.o 02/07/24
cksum(1) Output:
OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
3810560644 53248 /usr/bin/login
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies:
PHCO_27004:
Although there are no dependencies, HP-UX 11.00 libc
cumulative patch PHCO_25976 or later is also required to
fix the performance problem of login.
Supersedes:
PHCO_16309 PHCO_18572 PHCO_19292 PHCO_24083 PHCO_25590
Equivalent Patches:
PHCO_25526:
s700: 11.11
s800: 11.11
Patch Package Size: 80 KBytes
Installation Instructions:
Please review all instructions and the Hewlett-Packard
SupportLine User Guide or your Hewlett-Packard support terms
and conditions for precautions, scope of license,
restrictions, and, limitation of liability and warranties,
before installing this patch.
------------------------------------------------------------
1. Back up your system before installing a patch.
2. Login as root.
3. Copy the patch to the /tmp directory.
4. Move to the /tmp directory and unshar the patch:
cd /tmp
sh PHCO_27004
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHCO_27004.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHCO_27004. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
WARNING: If patch_save_files is false when a patch is installed,
the patch cannot be deinstalled. Please be careful
when using this feature.
For future reference, the contents of the PHCO_27004.text file is
available in the product readme:
swlist -l product -a readme -d
/tmp/PHCO_27004.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHCO_27004.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
-----End of Document ID: PHCO_27004------------------------------------------
Document ID: PHCO_25976
Date Loaded: 20020815
Title: s700_800 11.00 libc cumulative patch
Patch Name: PHCO_25976
Patch Description: s700_800 11.00 libc cumulative patch
Creation Date: 02/08/08
Post Date: 02/08/15
Hardware Platforms - OS Releases:
s700: 11.00
s800: 11.00
Products: N/A
Filesets:
OS-Core.C-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
OS-Core.C-MIN-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
ProgSupport.PROG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
ProgSupport.PROG-AX-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
ProgSupport.PROG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
Automatic Reboot?: No
Status: General Release
Critical:
Yes
PHCO_25976: ABORT CORRUPTION HANG
PHCO_25707: ABORT HANG
PHCO_24723: ABORT
PHCO_24148: CORRUPTION ABORT
PHCO_13283: CORRUPTION
Category Tags:
defect_repair enhancement general_release critical
halts_system corruption
Path Name: /hp-ux_patches/s700_800/11.X/PHCO_25976
Symptoms:
PHCO_25976:
A user built perl executable aborted when using
getpwent(3C) API.
JAGae00927; SR 8606231691
gethostbyname(3N) routine returns incorrect results in
multi-threaded environment when it is called with an
IP address as the argument.
JAGae19108; SR 8606254777
On a system with duplicate utmpx entries, logname(1)
command and getlogin(3C) API were reporting incorrect
login-names for the user.
JAGae07413; SR 8606238389
strtod(3C) returns the wrong end pointer, when the
first argument is "infinity".
JAGae26691; SR 8606262356
Daemon programs which make calls to getpwnam(3C),
getpwuid(3C), getgrgid(3C), or getgrnam(3C) may hang.
JAGae21220; SR 8606256907
Whenever large number(for example: more than 2000) of
logins or logouts happen simultaneously,response time
of the system is very slow (several minutes).
JAGac42568; SR 8606125689
Application crashes when threads are created with
non default stack size
JAGae10553; SR 8606243323
PHCO_25707:
Application which uses localtime() aborts when built with -z
and environment variable TZ set to last entry in
/usr/lib/tztab.
JAGad94442; SR 8606225355
Deadlock occurs when one thread in the process is performing
a blocking read (via stdio interfaces like fgets) and before
the blocking thread could return, another thread performs a
fork().
JAGad68247; SR 8606199060
PHCO_24723:
Performance degradation of mktime ()
JAGad75245; SR 8606206070
delmntent libc routine deletes the entire mnttab contents.
JAGad81071; SR 8606211883
regexec() does not handle multibyte characters correctly.
JAGad74356; SR 8606205180
directory (3C) API's mutex contention.
JAGad82310; SR 8606213123
Default SBA support for C++ applications
JAGad74141, JAGad84551; SR 8606204965, 8606215364
memchr returns incorrect result when the count is -ve
JAGad86533; SR 8606217381
memchr core dump
JAGad63604; SR 8606194394
When a file stream is opened in read-only mode, putw()
reports a success though sets the errno to EBADF.
JAGad72144; SR 8606202970
When a file stream is opened in write-only mode, an
immediate fread() reported failure but an fread() which was
followed by a fwrite() reported success.
JAGad72400; SR 8606203226
rlogin with long host name causes it to exit, giving
"received signal 11" message.
JAGaa27187;
remsh and rexec with long user name dumps core.
JAGad27794; SR 8606158464
When an application creates more than 5000 threads, there is
a possibility that res_query() dumps core. As a result of
which, the application exits.
JAGad81970; SR 8606212783
PHCO_24148:
Multithreaded application core dumps sometimes when it uses
the Name Service Switch calls like getXXent and endXXent.
JAGad65825; SR 8606196622
M_BLOCK behavior for malloc not working correctly.
JAGad55731; 8606186527
mallinfo(3C) doesn't give correct memory statistics if the
application is multithreaded and uses multiple arenas.
JAGad34660; 8606165366
ptsname corrupts heap SIGBUS may result.
JAGad46861; 8606177629
When environment variable TZ is not set, the variables
tzname[2] and timezone is set to hard coded values
corresponding to Eastern Standard Time.
JAGab20870; 8606239637
valloc fails when memory available in multithreaded
application.
JAGad47526; 8606178299
New feature and not a defect. Initialized TLS support in
libc
JAGad49168; 8606179946
fstyp returns "unknown_fstyp" on VxFS version 4 disk layout
file system
JAGad57721; 8606188513
strncasecmp() behaves differently with libc patches for
S-Chinese locale
JAGad66064; 8606196866
Trusted system calls made on an 11.0 NIS system causes a
SIGSEGV core dump.
Using "dns" as a source for databases other than "hosts"
causes a SIGSEGV core dump.
JAGad41604; 8606172344
PHCO_23770:
For those PA-32bit Threaded C Applications which uses C++
plugins and pthread/cma calls in static
constructor/destructor, may happen that destructors will be
called twice. Non-threaded PA-32 bit applications do not
have this problem.
JAGad55189; SR 8606185984
PHCO_22923:
No externally supported method to pthread safe dynamically
loaded libs.
JAGab69119; SR 8606102984
User cannot use C++ runtime library on 32 bit application
without either using a C++ main program or explicitly invoke
the C++ runtime library's initialization routine, _main,
from the C ( or Fortran ) main program.
JAGad41440; SR 8606172179
gettimeofday is very slow for certain vendors who use it for
time stamping.
JAGad44410; SR 8606175166
Global symbols in libc can conflict with one in program
causing SIGBUS. Customer can experience this problem if
he/she uses his/her own global variable "alpha". It is very
likely that customers can have alpha as their global
variable.
JAGad33756; SR 8606164457
sigwait() does not work as cancellation point if the thread
is cancelled after it enters __sigwait_sys().
JAGad39745; SR 8606170481
memmove() failing for data near to a quadrant boundary.
JAGac87878; SR 8606129543
regcomp(3C) function fails to detect an extended regular
expression match in the input data.For example,If the
pattern is "%|^xyz" and the string is te%st, it gives Found
No Match.
JAGad31456; SR 8606162140
seekdir core dumps when compiled with -z option
JAGac78889; SR 8606128089
Purify reports "Uninitialized Memory reads" in readdir_r
JAGac95112; SR 8606130241
Trying to access the freed memory in closedir.c is causing
the core dump.
JAGad21880; SR 8606152550
snprintf() does not handle length of zero properly.
JAGad12471; SR 8606143128
regerror() may dump core for some values of error code
JAGad02475; SR 8606133330
PHCO_22314:
Data corruption in large malloc.
JAGad25621; SR 8606156311
strftime() to slow in multi-threaded applications
(On V-class systems).
JAGac86555; SR 8606129009
JFS 3.3 commands compiled with a libc stub for acl() system
call fail on files larger than 2GB. This was particulary
noted in setacl and getacl commands, however any command or
user compiled program using acl() could be affected. The
error code returned is EOVERFLOW.
JAGad09568; SR 8606140246
sed(1) hangs in non-C locale for some patterns.
awk sub pattern does not work well under non-C locales.
JAGad05149,JAGac56665; SR 8606136018,8606126100
When the system runs out of memory, call to regcomp(3C) will
result in bus error.
JAGad03415; SR 8606134279
Calling the getgrent or getpwent repeatedly causes core dump
with SIGBUS error when there is no nsswitch.conf file.
JAGad11220; SR 8606141866
strncat truncates string.
JAGad16345; SR 8606147002
PHCO_22076:
The default resolver configurable timeout is large
(5 Seconds). VUE may take a long time to come up when
the system is not connected to network.
JAGaa27175; SR 5003424531
PHCO_20765:
Fork fails for threaded applications when an older
pthread library (11.00 LR) is installed on the system.
JAGac40398; SR 8606125006
Threaded programs using third-party mallocs abort.
JAGac40401; SR 8606125009
Unsupported mixed dependencies on both archive and
shared libc fail.
JAGac40402; SR 8606125010
Sporadic valloc failure in threaded applications.
JAGac40711; SR 8606125320
Multi-threaded applications that create threads
sequentially encounter excessive process memory growth
and malloc() failure even when the process heap has
plenty of free memory.
JAGac40903; SR 8606125513
PHCO_20763:
This is a SP patch version of PHCO_20765.
PHCO_20555:
system() is slow in multi-threaded applications,
possibly leading to unusable systems due to swapping
activity if called from large 64bit processes.
JAGab78389; 8606108045
sigaction() called from a signal handler in a multi-
threaded application can result in hangs.
JAGab81794; 8606109096
In applications using large malloc, malloc can return
an invalid quad 2 "buffer" that overlays the stack,
resulting in stack corruption.
JAGab72262; 8606104633
Excessive static data for arenas and arena mutexes.
JAGaa14937; 8606114983
Inadequate statistics reporting to meet partner needs.
JAGaa26400; 8606114986
dirname(3c) causes application death (bus error) due
to segmentation violation.
JAGaa62439; 8606114988
Multithreaded programs deadlocks if they invoke
popen(3C) and fork(2) in different threads.
JAGab77826; SR 8606107568
regcmp(3C) call might fail on 64-bit on if the regular
expression is huge.
JAGab71463; SR 8606104124
VxFS ACL fails with large UID's/GID's (>=0x80000).
Once the file has one such entry in its ACL list, any
subsequent acl operations return "Invalid Argument"
error:
[ aldan:/mnt ] (90) touch TEST
[ aldan:/mnt ] (91) setacl -m user:12345678:r-- TEST
[ aldan:/mnt ] (92) getacl TEST
acl failed for file "TEST", Invalid argument
JAGab76091 JAGab76238; SR 8606106738; SR 8606106818
Core dump may occur when domain-name is not found in
the search list specified.
JAGab72180; SR 8606114994
A large number of threaded applications invoking
getXXbyYY calls on a MT system and running simultaneously
may hang, when the file table overflows.
JAGab82346; SR 8606109646
rpc calls invoking dns backend will not function
properly with the new dns backend library libnss_dns.1.
As a result applications using rpc like CDE and NFS will
not function properly .
JAGab68997; SR 8606115002
The host address type in the returned hostent structure
was not being set to correct value when IP address was
being passed to gethostbyname call.
JAGab71977; SR 8606115130
TZ env var (STD#DST,date1,date2) ignores DST if date1
greater than date2
JAGab75719; SR 8606106516
Under some offset, destination string lengths, and counts
beyond the terminating null in the source string strncat
can move fewer than the required number of bytes.
JAGab84233; SR 8606112024
PHCO_20369:
This is an SP patch version of PHCO_20555.
PHCO_19691:
strptime()/mktime() dumps core for the years
beyond 2038 when compiled with -z(do not bind
anything to address zero) option.
JAGab72590; SR 8606104837
1. ctype(3C) routines are too slow and the macros
have too many instructions because they contain
function calls.
2. The performance of singlebyte applications using
the ctype routines needlessly degrades in multibyte
locales.
3. strcasecmp(3C) and strncasecmp(3C) are too slow
compared to other vendors because they rely on
_tolower(3C) which is a macro mapped to a function
call.
JAGaa43050 JAGaa05164; SR 8606106824; SR 5003416776
mktime() does not seem to adjust for change in TZ
variable.
JAGaa44810; SR 5003444117
strptime(3C) returned NULL when processing the date
string generated by the command "date +%x" for locales
zh_TW.ccdc and zh_TW.big5.
JAGaa08262 JAGaa47278; SR 8606106825 ; SR 8606106827
When calling strncmp with one valid string pointer,
a null pointer and a length of zero strncmp will return
the first charater or the negative of the first
character of the valid string instead of an expected zero.
SR 5003463463
If the comparison character for memchr is a negative
integer memchr will not find the match.
JAGaa93243; SR 1653294272
Strrstr(s1, s2) sometimes claims that a match is found
when actually there is no match. Consider an example.
s0 = "ABCDEFG";
s1 = s0;
s1 ++; /* s1 points to "BCDEFG" */
s2 = "ABCDEFG".
Now strrstr(s1, s2) returns "ABCDEFG", which means
that a match is found. It should have returned NULL.
JAGaa41142; SR 5003436923
When attempting to assemble using a 9.X assembler the
assembler complains about unknown syntax.
JAGaa62460
64-bit regexec(3C) returns with large positive numbers
assigned to pmatch[i].rm_eo, and may cause applications
coredump.
JAGaa46130
An internationalized application leaks memory at every
setlocale() call to change its locale environment.
JAGaa06047
An internationalized application which frequently calls
setlocale() to change its locale environment encounters
a serious performance problem.
JAGaa08086; SR 4701391243
A multi-threaded internationalized application fails
in setlocale() for the restore operation using the buffer
returned by the previous call to setlocale().
JAGaa32025
memcmp() could return an incorrect result if the third
parameter to memcmp was a negative value.
JAGaa24067
VxVM pathnames not recognized by blocktochar()
JAGab69351; SR 8606103064
Linking with libc.sl can produce a slower running
application than linking with libc.a.
JAGab15584 JAGab16669
strtod("NaN",ptr) on HPUX 11.0 returns a ptr past the '\0'
JAGaa05185; SR 4701389726
glob(3C) cannot handle more than one trailing
'/' in a path string.
JAGaa94846; SR 1653297432
strxfrm does not work correctly for positional
forward and backward single as well as multi
byte locales.
JAGaa95471
The getcwd() API is slow and accesses remote
filesystems unnecessarily when there is a mount
point on the path to the current directory.
JAGaa01123, JAGaa40237
The contents of the struct utmp is NULL when end
of file /etc/utmp is reached, but the struct utmp
should contain the last utmp entry.
JAGaa05209
NaN and Infinity were printed incorrectly in case of
long double.
JAGaa86217
Poor multithreaded malloc performance, primarily
caused by mutex contention and mutex locking overhead.
Incorrect malloc statistics. Inadequate statistics
reporting capability. 64-bit multiarena malloc aborts
when user specifies _M_ARENA_OPTS.
JAGaa40240, JAGaa01969, JAGab19981, JAGab16523, JAGab43915
JAGaa26400, JAGab43837, JAGab53676, JAGab19980
SR 5003436451; SR 1653255513;
regexec() finds for "." in empty string "" with
locales other than C.
JAGaa53114; SR 4701413906
PHCO_19491:
Pre-enable additional filesystem type recognition.
JAGab68821; SR 8606102818
PHCO_19391:
Multithreaded applications hangs if one of the threads
vforks and does an exec(2) call (except the execve(2)
call).
Memory leak in applications using vfork and exec(2)
calls except execve(2) calls.
JAGaa55615
version 4, JFS ACL support is enabled within VxFS.
The libc patch is to create new APIs for JFS ACL,
and update existing ACL related interfaces in libc
aware of the new acl type, JFS ACL.
JAGaa95281; SR 4701420935
JFS 3.3 release introduces a new VxFS disk layout,
version 4. The new disk layout is used to support
JFS ACL, JFS Clone FS feature, and has an enhanced
fsadm shrink capability. The libc patch is to make
JFS related interfaces in libc aware of the new disk
layout.
JAGaa95281; SR 4701420935
PHCO_19090:
If atoi() is passed a string containing a character with
code value greater than 127 (\x7f), the wrong answer may
be returned using a 32-bit libc or there may be a
coredump with a 64-bit libc.
JAGab25446, JAGaa05164; SR 8606100279
PHCO_18227:
When a process is in the kernel and receives a self-sent
SIGABRT signal via abort(3C), the contents of the callee
save registers are undefined. This causes DDE unable to
unwind the core file generated by abort(3C).
JAGaa43927; SR 5003443143
strftime(3C) returns week number 52 for 12/27/1999-
12/31/1999 and 53 for 1/1/2000-1/2/2000.
JAGaa46298
malloc is slow for multi-threaded applications.
JAGaa32680
Strcoll performance very bad compared to that of 9.x.
JAGaa00524; SR 1653214346
Strcoll failure. Single byte locales did not collate
properly when an old version of single byte locale (using
multi-byte routines for single byte locales) is used with
new version of libc (where single byte routines are used
for single byte locales). The original change was made in
10.10.
JAGaa18768, JAGaa18769
libcres--new library : Applications that have statically
linked with libc can experince core dumps if libc.sl
changes internal call graphs.
JAGaa43395
mkfs(hfs) can't handle VxVM volume pathnames
JAGaa42843
memchr() perf improvement: memchr() does not perform
well when static branch prediction is enabled. memchr()
causes stack overflow problems for large values of
length. memchr does 64 bit compare operations on
32 bit operands.
JAGaa13890, JAGaa41248
mktime(3C) sets tm_isdst to 0 when daylight savings
is in effect for dates past Tuesday January 19 03:14:07
UTC 2038. Since strptime(3C) obtains this value from
mktime(), it also returns the 0 for tm_isdst when daylight
savings is in effect for those dates.
JAGaa16206, SR 4701405688, JAGaa23230 SR 4701405696,
JAGaa23233 SR 4701405720
strptime() does not check for dates not within the
supported range of Friday December 13 20:45:52 UTC 1901
and Friday December 31 23:59:59 UTC 9999.
JAGaa23231 SR 4701405704, JAGaa23232 SR 4701405712
In 64-bit HP-UX, getdate(3C) does not check for
dates not within the supported range of Friday December
13 20:45:52 UTC 1901 and Friday December 31 23:59:59 UTC
9999.
JAGaa26931 SR 4701409581
PHCO_18103:
64-bit applications may dump core when attempting to
use getcwd(3C).
JAGaa95447
PHCO_17601:
Excessive locking of /etc/mnttab in the getmntent(3X)
family of APIs can cause a deadlock.
JAGaa01122, JAGaa01628
On a 64bit system strlen() returns incorrect values
when the lower 32 bits of address are a zero.
JAGaa93445; SR 4701418293
For a week which contains days in the previous year
and the new year, strftime(3C) with %V returns week
number 53 for those days in the new year if they are
less than 4 days in the new year in that week,
regardless of whether the last week of the previous
year is 52 or 53; otherwise, it returns 1. It returns
either 52 or 53 for those days in the previous year.
This result in two different week numbers for days in
the same week for certain years.
JAGaa62691
An internationalized application leaks memory at
every setlocale() call to change the locale environment
(The query operation doesn't leak the memory).
JAGaa92941; SR 1653294694
getpwnam() returns wrong values sometimes, making
the system unreliable.
JAGaa46458, JAGaa72866; SR 1653284414; SR 1653287904
getcwd does not handle Loop Back File Systems (LOFS)
correctly.
JAGaa86037; SR 4701416800
PHCO_16629:
memcmp(3C) returns incorrect values when compiled
with +DA2.0N. memcmp, memchr, strncat do 64 bit
compare opearations on 32 bit operands.
JAGaa41144, JAGaa41248; SR 5003438507; JAGaa41796
malloc performance is very slow.
JAGaa17260
On some configurations 64-bit applications using a
long double get incorrect results.
JAGaa35268, JAGaa32697, JAGaa40380
Performance of getcwd() may degrade in certain cases.
JAGaa40211
SHLIB_PATH is enabled in the 64-bit flavor of libc.
JAGaa22065
setjmp/longjmp calls cause SIGBUS/SIGSEGV if application
is linked with CXperf tool.
JAGaa32076
Tuned, threaded applications using the small block
allocator use more memory than before.
JAGaa32072
PHCO_16130:
strcoll and wscoll of strings with collating elements
fail.
JAGaa18768, JAGaa18769
(1) strptime(3C) does not support dates beyond January
19 UTC 2038 in 32-bit HP-UX. (2) strptime() does not
fill in tm_wday, tm_mon and tm_mday when supplied both
the year and day of the year. (3) strptime() does not
treat invalid input dates and inconsistent input as
errors. (4) strptime() does not handle %E correctly
in the C locale. (5) strptime() returns incorrect
value for tm_yday and tm_wday if tm_sec and/or tm_min
are initialized to -1 when the %j conversion
specification is used.
JAGaa06544; SR 5003416719
strptime() treats Feb 29 2000 and March 1 2000 as
the same day if the %A (or %a) and %U conversion
specifications are used. JAGaa13581
JAGaa13581; SR 1653269738
getcwd(3C) fails with ENOENT if the root file system
is a loopback file system (LOFS) after a chroot.
JAGaa11165, JAGaa01441, JAGaa05219, JAGaa06021
SR#4701382374; SR 4701394395 ; SR 4701389916
SR 4701390120
getenv runs very slow for multi-byte languages JAGaa05075
SR#1653259333
The getdate() function does not parse the template file
correctly when the %r field descriptor is used in at least
one of the templates. This leads to the situation that a
non-zero value for getdate_err is returned even when the
template file contains a matching template.
In addition, getdate() does not correctly handle the case
where %I is used in a template but %p is not. JAGaa00429,
JAGaa10165, JAGaa10166, JAGaa10167, JAGaa10168,JAGaa05222,
JAGaa10164, JAGaa10163, JAGaa08067, JAGaa10158,JAGaa12392
memcmp( ) does not perform well when static branch
prediction is enabled. JAGaa06535
PHCO_15768:
When LANG=japanese, the sed command, s/$/x/, would not
add the character to the end of lines. JAGaa01206
SR 5003396234
Commands dump core if LC_COLLATE=nonC and LC_CTYPE=C.
JAGaa01685; SR 4701385336
__strnlen() API in 64-bit mode returns incorrect value
of the length of string. The __strnlen() API returns
correct length of string in 32-bit mode, though.
JAGaa01674
JAGaa01271: syslog()
Calling openlog() with a very long ident string causes
syslog() to dump core or create unexpected/undefined
results.
Multi-threaded applications using usleep(3C) hang.
JAGaa01457
When Null pointer was used as argument for fputs and
puts, the behavior is inconsistent between pre-10.20
and 10.20 onward releases. JAGaa01279 JAGaa01511
JAGaa01513 JAGaa01515
syscall() API doesn't handle 5th and 8th arguments
correctly. These parameter values are not handled and
hence return value from syscall() API would not be
correct. JAGaa04782
setjmp() function coredumps with Memory fault if the
program is compiled with 64-bit mode (+DA2.0W) and -z
compiler option along with patch PHCO_14102.
JAGaa01982; SR 1653257121
PHCO_14704:
Libc does not compile with the changes made in ftw.h to
provide Large Files support for C++ due to the use of
"struct stat64" in the internal 64-bit ftw interfaces.
JAGaa01664
The API sigspace() causes the calling process to hangup
if called after another call to this function; sigspace()
also causes the calling process to terminate if called
by more than one thread within a process. JAGaa01033
JAGaa01062
The API execvp(const char *file, char *const args[])
fails (returns -1) with errno set to E2BIG if the
following conditions are met: (1) the 'file' is a
shell script that doesn't specify the interpreter
being used. (e.g., #!/usr/bin/sh); (2) the number
of arguments contained in arguments (args[]) is
greater than 254. JAGaa00583
Enhancement request for providing a new threads API
__thread_detach(). JAGaa01380
Customers using their own versions of malloc() and free()
would notice free() being called twice on a same block
while using the glob() libc API. JAGaa01494
This is an enhancement request to provide jmp_buf pointer
in the hook functions of HP CXDL Development Tool. These
hooks are called from setjmp() and longjmp() APIs while
applications are linked with HP CXDL Development Tool.
JAGaa01603
Inconsistent behavior from pre 10.20 systems and 10.20
onwards in memccpy() API. JAGaa01280.
The API regcomp() dumped core, instead of returning
error, when dealing with some non-recognizable expression.
JAGaa01396, JAGaa01496, JAGaa01497
strptime(3C) does not calculate the week number correctly
when the first day of the year is a Sunday (for %U and %W)
or a Monday (for %W). JAGaa00976 1653231456
When users with expired passwords try to log in on the
console, they get usage message from the passwd command:
"usage: passwd [-F file] [name]". DTS JAGaa00533, SR
5003380394.
Threaded applications calling the gets(3S) API may hang
after doing another i/o operation on stdin. DTS JAGaa01148
SR 5003394833.
Code cleanup done in getcwd.c. User behavior unchanged.
JAGaa01101
PHCO_14102:
Applications that fork & implement their own malloc will
not compile. JAGaa01398; SR 4701382259
PXperf performance tool doesn't collect correct statistics
across setjmp/longjmp() family of calls. JAGaa01399.
When the length of the environment variable LANG is longer
than 1024 (MAXPATHLEN), catopen(3C) in /usr/sbin/lanadmin
caused coredump. JAGaa01290.
Calling perror(string) with the length of the string and the
message larger than 1024 will cause coredump. DTS #
JAGaa01178, JAGaa01166.
Signal mask is not restored after calling free when
mallopt(M_BLOCK,0) has been set. Only happens on multiple
calls to free for the same pointer. DTS JAGaa00773,
JAGaa00489, DSDe424072; SR 1653228304 1653119560 5003156760
JAGaa00476
If malloc() is requested for an impossibly large size, for
example 2 GB, when large malloc has been enabled, this
request fails when malloc() returns NULL and sets errno to
ENOMEM, as it should. However subsequent calls to malloc()
with smaller reasonable sizes should be successful, yet
they fail when malloc() returns NULL and sets errno to
ENOMEM. DTS# JAGaa01179.
In the event that times(2) fails in a multi-threaded
application, clock(3C) does not release the mutex. This
will cause the next thread that invokes clock() to wait
forever for the mutex, in effect, causing the application
to loop forever. DTS # JAGaa00967.
NIS map transfer fails due to transfer timeout on slave
as a direct result of an inefficient method of scanning a
sparse DBM database. DTS # JAGaa01111, JAGaa01150; SR #
5003392126.
PHCO_13412:
64-bit Fortran 90 gets unexpected signal and the floating
point exception handling fails. DTS CLLbs12814 CLLbs12830,
SR 4701376756; JAGab68498
PHCO_13283:
The HP CXDL Development Tools don't collect correct
performance statistics across setjmp/longjmp() family of
calls. DTS JAGaa00559, SR 4701374496; JAGaa01168.
The wcswidth(3c) API depends on methods/locales to
return a value 0 for an empty wide string. Sometimes
a locale would return a value other than 0 for an empty
wide string. DTS JAGaa00448, SR 4701374470; JAGaa01167
Core dump in certain corner cases. DTS JAGaa01047, SR
4701374504; JAGaa01169
Defect Description:
PHCO_25976:
When the domain name is set to null and when the
NSS (Name Service Switch) configuration is "files nis"
for password database, then the getpwent(3C) API dumps
core with the SIGBUS error. In the switch code, the
destructor for the same files backend is called
second time.
Resolution:
The code flow is changed in such a way that the destructor
for the same files backend will not be called more than
once.
JAGae00927; SR 8606231691
When gethostbyname(3N) is called with an IP address as the
argument in a multi-threaded environment, the static
global variables may be corrupted as they were not
protected for threads.
Resolution:
The global variables are now protected for threads by
defining them locally to the function where they are used.
JAGae19108; SR 8606254777
Duplicate entries problem in the utmpx file,would result
in more than one entry for the same pts/pty/tty. This
leads to a situation wherein only one of the entries in
the /etc/utmpx file is correct and signifying the current
session of the user and the rest of the entries being
incorrect. They correspond to processes that no-longer
exist but still are marked as user processes. logname(1)
command and getlogin(3C) API would report incorrect
username in this case.
Resolution:
The fix takes into account the current session for a
particular terminal. It compares the session id of the
calling process and the session id of the ut_pid entry in
the /etc/utmpx file to get the correct entry which is
the entry corresponding to the current user's session.
JAGae07413; SR 8606238389
In strtod(3C),if the first argument is "infinity", it is
returning next to next character after "infinity". But it
is supposed to return next character after "infinity".
Resolution:
strtod(3C) is modified in such a way that, if the first
argument is "infinity", then it will return next
character after "infinity".
JAGae26691; SR 8606262356
If an application calls any of the APIs getpwnam(3C),
getpwuid(3C), getgrgid(3C), or getgrnam(3C) and closes
all open files prior to or after forking a new process,
the above mentioned APIs will show undefined behavior
in the child context.
Resolution:
Libc source has been modified so that the APIs
getpwnam(3C), getpwuid(3C), getgrgid(3C) and getgrnam(3C)
will not use the cached file descriptor in the child
context after fork, if it is already closed and reopened.
JAGae21220; SR 8606256907
The system commands like telnetd(1M), rlogind(1M) and
login(1M) use the getut(3C) and getutx(3C) APIs while
updating or adding the entry to /etc/utmp and /etc/utmpx
files. The APIs getut(3C) and getutx(3C) searches the
files linearly for the given entry. Whenever there are
large number of entries (for example: more than 2000 )
in the /etc/utmp and /etc/utmpx files, searching for a
particular entry is taking long time(several minutes)
and this leads to poor response of the system whenever
large number of login or logout happens simultaneously.
Resolution:
This is a fix to provide pre-enablement for a
future release of login(1M), telnetd(1M) and rlogind(1M).
This solution is applicable only for above mentioned
system applications. The APIs getutid(3C), getutxid(3C),
pututline(3C), pututxline(3C), getutxline(3C) and
getutline(3C) were modified to avoid linear searching
of the files /etc/utmp and /etc/utmpx while updating or
adding the given entry in the files.This will lead to
better performance whenever large number (for example:
more than 2000) of login or logout sessions happen
simultaneously.This solution will have no impact on
the current functionality of login(1M) telnetd(1M) and
rlogind(1M) and other applications on the system.
JAGac42568; SR 8606125689
Application crashes when threads are created with
non default stack size
Resolution:
Provided a wrapper for creation of thread with
non-default stacksize
JAGae10553; SR 8606243323
PHCO_25707:
There is a null pointer dereference in localtime() that
causes core dump when the application is built with -z and
the environment variable TZ used is not in the file
/usr/lib/tztab or the environment variable TZ is the last
entry in the file.
Resolution:
The pointer is checked for null before de-referencing.
JAGad94442; SR 8606225355
stdio interfaces acquire mutexes to enable multi thread
safety of the interfaces. The registered atfork-handler
also tries to acquire the same mutexes which causes the
deadlock. The scenario was that the thread performing the
blocking read is blocked on a pipe and waiting for the child
to spawn and write on the pipe. As the child will not be
spawned until the thread performing the fork() is able to
acquire the lock, it is a deadlock situation.
Resolution:
The locking of the stdio mutex in atfork-handler has been
removed. With this fix, deadlock in parent will not occur
as reported in the defect.
JAGad68247; SR 8606199060
PHCO_24723:
mktime takes the timezone specifications from /usr/lib/tztab
file. Incase the application does a rapid switch between 2
invalid time zones then for each switch the tztab file is
accessed and searched for the required time zone. Hence for
each switch the file is read completely. This degrades the
performance of mktime.
Resolution:
The /usr/lib/tztab file is cached in memory local to the
process, the first time mktime is called, and each
subsequent call to mktime makes use of this cached data.
This approach reduces the number of disk read operations.
JAGad75245; SR 8606206070
delmntent libc routine deletes the entire contents if mntent
structure obtained from the call to getmntent was passed to
delmntent.
Resolution:
The defect is due to the returning of same global buffer by
getmntent call to an application and the same global buffer
being used in the delmntent libc call. The code has been
fixed to address the problem.
JAGad81071; SR 8606211883
regexec() does not handle multibyte characters correctly.
where the second byte of a multibyte SJIS character is
interpreted as stand alone single byte character.
Resolution:
For matching a pattern containing .* , .+ , regexec
traverses the entire length of the string and then
backtracks to find out whether it can match the remaining
part of the pattern. The backtracking logic currently
doesn't take the multi-byte scenario into consideration and
goes back byte by byte. In the case of a multi-byte
character with a valid character as a second byte, a match
is found for the second byte even though it is not a
stand-alone character and just forms part of a multi-byte
character. Now the code has been changed to take care of
multi-byte back tracking.
JAGad74356; SR 8606205180
An application using the directory(3C) API's in
multithreaded environment got into mutex contention problem,
which resulted in 100% usage of the CPU resource time.
Resolution :
opendir and closedir API have been enhanced to reduce the
mutex contention.
JAGad82310; SR 8606213123
The HP-UX libc memory allocator is slow for C++ applications
which frquently allocate and deallocate small blocks, as it
uses the cartesian tree to maintain the free block list.
Resolution:
mallopt(3C) is enhanced to provide a new commond M_SBA_ON
which will be used by C++ initialization library to
configure predefined SBA parameters.
JAGad74141,JAGad84551; SR 8606204965, 8606215364
memchr can read past the area passed to it causing core
dumps.
Resolution:
Code change is done in memchr to avoid reading beyond the
memory passed to it.
JAGad63604; SR 8606194394
memchr returns NULL even when the character searched for is
present in the string passed to it when the count is -ve.
Resolution:
Logic is changed in the memchr to handle the -ve count.
JAGad86533 ; SR 8606217381
When putw() fails, it is supposed to set the error flag for
the file stream, set the errno describing the error occurred
and return EOF. Only the errno was being set but error flag
of the file stream wasn't being updated due to which EOF was
not being returned.
Resolution:
Change has been made so that, in case no write permissions
are found for the file stream, the errno is set and EOF and
the file stream's error flag is set.
JAGad72144; SR 8606202970
There was a missed condition wherein a file stream which has
been opened in write-only mode, an immediate fread on the
stream failed but if the fread() followed after a fwrite()
didn't report an error.
Resolution:
Explicit condition check on mode of operation of file stream
solves the problem.
JAGad72400; SR 8606203226
rcmd is exiting with long hostname. The hostname with
length greater than the buffer size, is the cause for
exiting.
Resolution:
Length of input string will be checked before it is copied
on to the buffer.
JAGaa27187
check for long user names missing in code.
Resolution:
The program is modified to check if the length of the string
passed, is lesser than the buffer length before copying
string on to the buffer
JAGad27794; SR 8606158464
res_query() dumps core when called through a large number of
threads simultaneously from a single process as the socket
descriptor may cross 2048 which is the current limit.
Resolution:
The code has been modified to handle any number of threads
(limited by system resources only) as the limit on socket
descriptor is removed.
JAGad81970; SR 8606212783
PHCO_24148:
The getXXent call and endXXent functions call shl_unload()
function to unload the shared backend library when the
number of references to the backend instance structure is
zero. However, the library call shl_unload() on PA32
machine unloads the shared library regardless of whether
there are other references to it through other load
invocations. This causes the subsequent shl_unload call
fail with signal 11.
Resolution:
Removed the shl_unload call for PA32 architecture in the
SO_per_src_delete function.
JAGad65825; SR 8606196622
The defect was due to blocking the signals after locking the
malloc mutexes in the case of multi threaded malloc. When
malloc/calloc/valloc/realloc is called in signal handler and
also the main thread of execution and there are frequent
signals to application. The application becoming busy in
locking and unlocking the malloc mutexes resulting into
application hang situation.
Resolution:
Signals blocking is done before locking the mutexes. Which
avoids the too many mutex locks and unlocks.
JAGad55731; 8606186527
mallinfo(3C) doesn't give correct memory statistics if the
application is multithreaded and uses multiple arenas. The
problem was introduced during multi arena enhancement. The
way mallinfo() designed works fine only for single arena,
but the problem starts when there are 2 or more arenas and
there is a overlapping brk value.
When multiple threads call malloc(3C) to allocate space,
each will be assigned an arena. Each arena will maintain
the start and end point of that arena. The arena_start
represents the starting heap address for this thread and the
end_arena represents the ending address. Assume 2 threads
are say THREAD1 and THREAD2 running in parallel. THREAD1
calls malloc(), malloc stores the the arena_start1(current
brk value say 0x1000 ) and extends the brk value to
predefined size and sets the end_arena1(0x4000), similarly
THREAD2(arena_start 0x4000, arena_end 0x8000). If THREAD1
again calls malloc() and there is no pre-allocated space in
the arena, the brk value is increased and arena_end will be
set( 0x12000).
The mallinfo() will collect the size by visiting each arena
starting from arena_start till arena_end of that arena. In
the above case arena_start and arena_end of THREAD1 is
0x1000 and 0x12000 respectively, for THREAD2 arena_start is
0x4000 and arena_end is 0x8000 respectively. While counting
the size, arena for THREAD2 will be counted 2 times, once
with arena1 and once with arena2. Hence the problem. In
single arena implementation this problem will not be
revealed.
Double counting is happening because we will modify the
dummy header when AClastbrk != _curbrk (AClastbrk <
_curbrk). The dummy header which had SIZE=0 and USED set,
will be set with the difference of _curbrk and AClastbrk in
the function grow_arena(). If the AClastbrk of one thread
is not equal to the _curbrk, the possibility is that either
user application called brk/sbrk or the function grow_arena
is called by some other thread. If the _curbrk value is
changed from some other thread by calling grow_arena() then
the other thread treats this as the user allocation and the
dummy header is modified appropriately and fixes the
arenaend for this thread.
The problem will be there if there is a overlap between the
brk values of the different arenas. So in the current
implementation USER_ID is used when
O The application directly calls brk/sbrk
O The other arena calls brk/sbrk (in grow_arena()
i.e. AClastbrk != _curbrk)
The problem is because of setting USER_ID when the other
arena calls brk/sbrk (in grow_arena() i.e. AClastbrk !=
_curbrk).
Resolution:
The resolution is basically to avoid the use of USER_ID when
the other arena calls brk/sbrk (in grow_arena() i.e.
AClastbrk != _curbrk). A new memory block identifier
ARENA_ID is defined in malloc.c as
#define ARENA_ID 0x13
The ARENA_ID is used to mark that the memory block is used
and it is used by some arena. The used memory block will be
marked with ARENA_ID under the circumstance mentioned below.
When a block of memory is used by some other arena and the
last brk value maintained in the that arena is not equal to
the _curbrk. While counting memory usage statistics in
mallinfo(), the memory block with ARENA_ID as the id we will
skip because it is used by some other arena and will be
taken into account under that arena.
The two global variables
char *_node_curbrk
char *_common_curbrk are also defined in malloc.c.
node_curbrk: The variable _node_curbrk is used to identify
if there are 2 successive call to the function node_alloc()
from different arena. The check is required because when
space is allocated for nodes, no space will be allocated for
the dummy header.
common_curbrk: This variable is analogous to _curbrk.
_curbrk keeps track process wide brk value, but
_common_curbrk is to keep track the brk activity within
malloc module. This variable is used to decide whether the
brk value is changed by some other arena OR application has
called brk(2)/sbrk(2) system call. If the _common_curbrk is
not equal to _curbrk means that the application has called
the brk(2)/sbrk(2).
JAGad34660; 8606165366
ptsname corrupts heap SIGBUS may result. It is a bug in
ptname() function.When the application is linked with
libpthreads,it dumps core.
Resolution:
The cause of this problem is instead of passing the sizeof
bytes allocated by malloc to the GET_TSS() function, the
sizeof the character pointer returned by malloc is passed as
an argument. So,it is always taking sizeof the character
pointer which is less than the number of bytes allocated by
malloc. ptsname() is modified accordingly to address this
problem.
JAGad46861; 8606177629
When the variable TZ is not set in the environment, in HP-UX
it defaults to EST5EDT which is the east coast time in US.
This poses problem in the environment of the processes that
(a) are started by init(1m)
(b) clear their environment (e.g. login (1), sendmail(1m) )
The hard coded value is inappropriate for any timezone other
than east coast of US and the difference is difficult to
track for countries like Australia which frequently update
their daylight timing rules.
Resolution:
When the environment variable TZ is not set, tzset() checks
the default file /etc/default/tz for the timezone value and
sets timezone values based on that.
The file /etc/default/tz contains the timezone value set by
tzset() when the environment variable TZ is not set. The
format for the file is same as TZ format without the prefix
"TZ=". Please check environ(5) for TZ format.
The order of TZ setting is as follows.
1) if the environment variable TZ is present, it takes
precedence.
2) if TZ is not present then the value contained in
/etc/default/tz is used for the default.
3) if /etc/default/tz is not set then the default value is
equivalent to EST5EDT (Eastern Standard Time) of US.
(Install the Patch PHCO_23652 to get the sample
/etc/default/tz file. Please read "Other Dependencies" field
for more information on PHCO_23652 patch)
JAGab20870
valloc() fails to allocate the memory in multi threaded
application when there is space available in other arenas.
The problem is because in multithreaded application if the
space on heap is exhausted and no space in the particular
thread's arena, valloc is returning NULL. But there could
be some space available in other arenas and that can be used
under this arena.
Resolution:
The allocation alogorithm for valloc() is modified, to try
allocation of space from other arenas when there is no space
left on the heap.
JAGad47526; 8606178299
Initialized TLS support in libc for 64 bit non threaded
applications.
Resolution:
The initialization routine of Libc has changed to support
initialized TLS variables in a PA64 non threaded
applications. Both the archived and shared version of the
libraries have this enhancement.
To get the complete functionality of ITLS (Initilized thread
local storage) the following patches has to be installed.
PHSS_23440 - linker core
PHSS_23785 - linker ISU
PHCO_23792 - libpthread
PHSS_23953 - Fortran compiler
Currently this feature is available with Fortran compiler
only.No changes are required to be done in libc when this
feature is made available for any other compilers.
JAGad49168; 8606179946
fstyp command calls statvfsdev on VxFS version 4 disk layout
returns "unknown_fstyp". It fails on accessing initial
inode list extents block address which exceeds 32 bit
addressing. lseek64 should be used instead of lseek in
__vx_fs_lseek.
Now the call to lseek is replaced with lseek64 by using a
compilation flag _FILE_OFFSET_BITS=64 in the makefile.
JAGad57721; 8606188513
When the APIs getprpwnam(), getgrnam(), getnetbyname(), and
getservbyname() are configured with the /etc/nsswitch.conf
file to search sources that do not support these calls, the
Name Server Switch engine code unloads the sources and
returns NSS_NOTFOUND. The source "nis" doesn't support the
trusted system call getprpwnam(). The source "dns" is only
valid for the "hosts" database. Thus, subsequent API
getXXXbyYYY calls that try to search sources that have been
unloaded end up accessing invalid locations, resulting in a
SIGSEGV core dump.
Resolution:
If a source doesn't support an API getXXXbyYYY call, don't
unload the source. Just have the Name Server Switch engine
code return NSS_UNAVAIL.
JAGad41604; 8606172344
The strcasecmp() and strncasecmp() functions behave
incorrectly when presented with strings containing bytes in
the range 128-255. The incorrect behavior can result either
in a core dump or an incorrect comparison value, depending
on the data.
Resolution:
Cast chars to (unsigned char) before using as index in
_tolower().
JAGad66064; 8606196866
PHCO_23770:
When a C application uses C++ plugins and calls pthread/cma
calls in static constructor/destroctor, it was leading to
destructor being called twice. This was happening because
the C++ runtime initialization routine was invoked at a
point when the pthread library initialization would not have
been complete . During this time, constructor was invoking
pthread calls . This might have lead to destruction of the
shared data (static/global) in the libCsup.
Resolution:
Changes are made to libc so that C++ runtime initialization
routine is invoked only after the completion of pthread
library initialization.
JAGad55189; SR 8606185984
PHCO_22923:
On HP-UX if a nonthreaded application links to a
thread-safed library the link will fail due to unresolved
pthread symbols.To resolve these symbols, it is necessary to
link the nonthreaded application to the threads library
libpthread.But linking to that library makes the application
threaded even if it creates no threads.Providing POSIX 1c
thread "stubs" in HP-UX C language library have two direct
effects for nonthreaded applications. a) POSIX 1c threads
symbols are resolved if a nonthreaded application links to a
thread-safed library b)We avoid the overhead of a real
threads library -- especially the overhead associated with
mutexes when the nonthreaded application uses thread stubs
rather than real threads library procedures.
Resolution:
Stubs are provided for all pthread calls only in SHARED LIBC
FLAVORS of the HP-UX C Library. These stubs do not have any
functionality, these are dummy functions returning zero
except pthread_getspecific() family of APIs which has full
functionality implemented in the stubs. Full functionality
is provided in the stub for the following pthread calls
* pthread_key_create()
* pthread_getspecific()
* pthread_setspecific()
* ptherad_key_delete()
* pthread_exit()
call to stub pthread_self() returns 1
call to stub pthread_equal(arg1, arg2) will return
(arg1 == arg2)
Call to the stub pthread_create() and pthread_attr_init()
returns ENOSYS.
All other stub calls returns zero.
There are two special interfaces provided for checking
whether an application is linked to pthread library or not.
a) __is_threadlib_linked()
returns 1 for an applications linked to pthread
library otherwise returns zero.
b) __get_ismt()
returns 1 for applications linked with libcma
returns 2 for applications linked with libpthread
otherwise returns 0
Risks:
------
An application may inadvertantly pick up the stubs when it
intended to use the real pthreads APIs, or it may pick up
the stubs when it needs cma APIs or stubs. These are all
link order problems. An application that needs cma behavior
must link to libcma (or the cma stubs library) and must do
so in a supported link order,
i.e. the link line should be shared only and should
not contain "-lc" before -lcma.
So long as this condition is met, the correct cma functions
will be referenced. Similarly, a multithreaded application
that needs pthread threads library behavior must link to
libpthread and must do so in a supported link order, and
only use shared libc and libpthread.
eg : An applications wants to use pthread stubs then
the link order should be
$ cc test.c -lc -lpthread
An applications wants to use pthread library then the
link order should be
$ cc test.c -lpthread -lc
JAGab69119; SR 8606102984
User cannot use C++ runtime library on 32 bit application
without either using a C++ main program or explicitly
invoking the C++ runtime library's initialization routine,
_main, from the C ( or Fortran ) main program.This problem
is not there for 64-bit PA-RISC applications, or for any
IA-64 applications, since the C++ library's initializer is
run automatically -- either at program startup or when
dynamically loaded.
Resolution:
The definition of the __main_ptr variable is done in
libc_init routine. The same varible is defined as a global
variable in libcsup, which will be initilized to the C++
runtime library initialization routine, _main. Thus, when
libcsup is linked into the program, the variable _main_ptr
will point to _main; otherwise, it will contain 0.
JAGad41440; SR 8606172179
gettimeofday is very slow for certain vendors who use it for
time stamping because it calls a heavy weight system call to
get the current time of the day.
Resolution:
A new API hrtime_t gethrtime(void) has been added to libc.
This API uses fast light weight system call to get the nano
seconds from certain time. It does not give you the current
time of day. hrtime_t is a signed 64 bit number. This API
will only be available if the application is being compiled
in -Ae mode because 64 bit integer number is not available
in -Aa mode.
JAGad44410; SR 8606175166
Global symbols in libc can conflict with one in program
causing SIGBUS. In ptsname.c we have defined two global
symbols alpha and range_spec. They are symbols which are
used only by libc. They should not be visible to customers.
They can conflict with the user defined global symbols.
Resolution:
alpha and range_spec is not used a global symbol in libc
JAGad33756; SR 8606164457
sigwait() does not work as cancellation point if the thread
is cancelled after it enters __sigwait_sys(). When
cancelling a thread that is blocked on sigwait() by means of
pthread_cancel(), the blocked sigwait() returns with EINTR
rather than checking the cancellation point before it
returns and terminate the thread.
Resolution:
When the thread is cancelled, then __sigwait_sys returns
error EINTR and does not set errno. In sigwait we were
checking for errno and setting the cancellation point. Now
that has been modified to check for return value.
JAGad39745; SR 8606170481
memmove() is moving data positioned very close to the
quadrant boundary and it leads to a SIGSEGV. When memmove()
attempts to move >=16 bytes of data, including the last 16
bytes of a quadrant, it fails with a SIGSEGV.
Resolution:
To correct this problem, the initial load word is now done
without modifying the source address. The offsets of the
subsequent loads are now positive from the current pointer.
After all loads are done, we increment the source address by
16.
JAGac87878; SR 8606129543
regcomp(3C) function fails to detect an extended regular
expression match in the input data.For example,If the
pattern is "%|^xyz" and the string is te%st, it gives Found
No Match.
Resoltion:
Defect is fixed by adding an "alternate" flag which is set
when there is an alternate('|') option in the regular
expression.
JAGad31456; SR 8606162140
seekdir core dumps when compiled with -z option
Resolution:
Made changes to check for null pointers before
derefererencing.
JAGac78889: SR 8606128089
Purify reports "Uninitialized Memory reads" in readdir_r
Resolution:
Changes are made to initilize variables
JAGac95112; SR 8606130241
ftw core dumps
Resolution:
Trying to access the freed memory in closedir.c
was causing the core dump. It is fixed now.
JAGad21880; SR 8606152550
When snprintf() is called with arguments like so:
snprintf(buf,0,format,args...);
the buffer pointed to by buf should not be altered
since the maximum number of characters to write
to buf is zero, but the buffer is in fact modified.
Resolution:
Checks for the str_len parameter for zero before doing the
actual processing.
JAGad12471; SR 8606143128
regerror() may dump core for some values of error code
Resolution:
The logic for checking the validity of error code is
changed.
JAGad02475; SR 8606133330
PHCO_22314:
Certain allocation patterns using large malloc cause data
corruption in the last integer of a malloced block. The
root cause is an error in the design of large malloc. The
lowest level allocation function malloc_sbrk() hides from
the caller whether sbrk() or mmap() is used to grow the
arena. However, in general when mmap() is used, allocation
is discontiguous. Depending on whether allocation is
contiguous or discontiguous, two different length values
must be passed to malloc_sbrk() because in the discontiguous
case space must be allocated for a second pair of headers
(the dummy headers that terminate the arena). Since
malloc_sbrk() hides from the caller the fact that sbrk() has
failed over to mmap(), there is no way to know which length
to pass. The implementation always passed the shorter
length, which is correct only for contiguous allocation.
Since the pre-large malloc, sbrk()-only, code detected
discontiguous allocation before calling sbrk() and passed
the correct lengths for each case, when sbrk() was replaced
by malloc_sbrk() the code continued to work for the
sbrk()-based heap. However, when the fail over to mmap()
occurs, and whenever mmap() results in discontiguous
allocation, the code does not detect the discontiguity and
the shorter length is passed to malloc_sbrk(). This means
that the arena end dummy headers are not explicitly
allocated in these cases. Usually, alignment causes the
arena end to be spaced far enough from the user area of the
last block that no data corruption occurs when the headers
are written. However, for certain block sizes and starting
positions this is not true, and the dummy headers overlap
the user area of the last block, resulting in data
corruption.
Resolution:
The ideal fix would involve recoding large malloc so that it
does not have a layer that hides whether sbrk() or mmap() is
being used, and always doing the correct length calculation
for each case. However, the fix we have applied here is
simply to allocate space for the second pair of headers in
every case. This does no harm, because it simply increases
the amount by which the arena is grown, not the sizes of
blocks returned to users. The extra space winds up on the
freelist. Moreover, in most cases the fix does not even
change the amount by which the arena is grown, because the
round-up to the next ALLOCSIZE boundary is the same with or
without the fix. Only for certain sizes of request that are
at or very close to an ALLOCSIZE multiple will the fix make
a difference in the amount by which the arena is grown. In
those cases, the arena will be grown by an additional
ALLOCSIZE. This guarantees that the arena end headers will
not overlap the user area of the last block. It will cause,
in these cases, an extra free block of about ALLOCSIZE to be
added to the free list.
JAGad25621; SR 8606156311
strftime(3C) is a thread safe libc API. In a multithreaded
application when many threads calls this API threads were
blocking on a mutex used to synchronize the threads
execution. The mutex lock holding time by every single
thread was very high because of which, threads were not
executed in parallel.
Resolution:
The previous design of strftime(3C) was using most of global
data, to store the intermediate processed data. To
synchronize the access to this data, in the API strftime(3C)
a mutex was locked on entry into the API and released only
while return. This problem can be observable on V-class
systems. To resolve the mutex lock contention, the global
data is replaced with local data which will be per thread,
and the mutex locking is made very short period of time.
This change promotes the parallel execution of many threads
during the execution of this API.
JAGac86555; SR 8606129009
The problem was traced to a libc code, to acl() stub.
The following check was done:
if ((stat(filep, &statbufp)) != 0)
return (-1);
However, since stat() is a 32 bit function, it would return
EOVERFLOW on files that are 2GB+. It was determined by our
investigation that this call is done only to check that the
file is present. E.g. it was assumed, that an error
returned by stat() would imply a bad filename.
Resolution:
The change was made to remove the stat() check from the
acl() system call. Our investigation has determined, that
the kernel code handles the invalid file names correctly,
and comes back with an appropriate errors when a bad file
name is given. With that in mind the stat() call was
determined to be an unnecessary precaution.
JAGad09568; SR 8606140246
sed(1) hangs in non-C locale for some patterns, awk sub
pattern does not work well under non-C locales. Both these
problems were happening because of underlying problem with
regexec. regexec loops beyond the end of string looking for
match in Non-C Locale.
Resolution:
The problem was traced to libc API regexec. Regexec was
looping and was looking for a match with the pattern when
the end of string was reached. The fix introduces a return
with No match when the end of string is reached.
JAGad05149,JAGac56665; SR 8606136018,8606126100
regcomp(3C) returns bus error in case of lack of memory.
According to the manual pages, regcomp(3C) should return
REG_ESPACE when the system runs out of memory.
Resolution:
In the regular expression sources, in some cases return
value of malloc(3C) was not checked. Without checking the
return value, a member in the structure was assigned with
some value, which is illegal and resulted in bus error. To
fix this problem, the return value from malloc(3C) is
checked. If malloc(3C) returns NULL(No memory), regcomp(3C)
return REG_ESPACE.
JAGad03415; SR 8606134279
When the switch engine fails to get the backend for the last
resource, it does not clean up the resources and free the
contexts. Because of that, the subsequent calls to
getgrent/getpwent have an unexpected value in the context
structure and thus causes the SIGBUS error.
Resolution:
Added the cleanup calls, nss_endent_u() and nss_delete()
in the nss_getent_u() function of the switch engine.
JAGad11220; SR 8606141866
Under certain circumstances strncat can truncate the output
string.
Resolution:
The logic of the strncat function was changed to address
this problem. JAGad16345; SR 8606147002
PHCO_22076:
When a system is disconnected from the network, and the
hostname lookup is configured for dns, it takes a long time
trying to resolve the hostname before it falls back to
files. The customer wants configurable timeouts.
Resolution:
Two new options have been added to make the retrans and
retry values configurable. These 2 values can be set in
resolv.conf as follows.
retrans <value in milli seconds>
retry <value>
Or these values can be set using environment variables
also.
RES_RETRANS
RES_RETRY
Two new apis are provided to provide programmatic access
to resolver(3N) retransmissions or timeouts:
get_resfield (int field, void *value, int len);
set_resfield (int field, void *value);
field - is either RES_RETRANS or RES_RETRY.
value - is the value to be set or obtained.
len - is the sizeof(value).
The order of precedence is as follows.
1. environment variable
2. resolv.conf
3. API.
JAGaa27175; SR 5003424531
PHCO_20765:
Fork fails to return for threaded applications using
the 11.00 LR libpthread.
Resolution:
A bug in the atfork handler for the dynamically allocated
malloc arena mutexes caused an uninitialized and unallocated
mutex to be locked. The mutexes are no longer dynamically
allocated and the atfork hander has been restored to its
earlier version.
JAGac40398; SR 8606125006
Threaded programs using third-party mallocs abort. The
dynamic allocation of malloc arena mutexes in PHCO_20555
did not check for third party mallocs, which do not allocate
the mutexes.
Resolution:
The malloc arena mutexes are no longer dynamically allocated
and it no longer matters that a third party malloc has not
allocated them.
JAGac40401; SR 8606125009
Threaded applications archive linked to earlier versions of
libc but linked shared to system libraries with dependencies
on shared libc can call the wrong libc mutex initializer,
the one for patch PHCO_20555, which assumes malloc arena
mutexes are allocated dynamically. However the older libc
that was archive linked to these applications assumes the
mutexes are allocated statically. This version mismatch
leads to attempts to lock uninitialized mutexes. This
linkage of archive libc and shared system libraries
dependent on shared libc is unsupported, precisely because
such mismatches can happen.
Resolution:
The 64 malloc arena mutexes have been returned to static
allocation in order to maintain backwards compatibility
with older libcs in (unsupported) archive-shared link
mixtures. The malloc arena contexts are still dynamically
allocated.
JAGac40402; SR 8606125010
Freeing valloced buffers causes sporadic failures in
threaded applications.
Resolution:
A bug introduced in the conversion of valloc for multiple
arenas caused some valloced buffers to be constructed so
that they could not be freed correctly. It has been fixed
in this patch.
JAGac40711; SR 8606125320
In a multi-threaded application, the PHCO_18227 malloc()
created a new arena for each new thread until the configured
number of arenas had been created. This approach led to
excessive memory growth in applications that create threads
sequentially and malloc/free a large amount of memory in
each thread.
Resolution:
The arena assignment algorithm now tracks the active number
of threads in the process and creates new arenas only when
all existing arenas have at least one thread assigned to
them. The new algorithm requires libpthread patch PHCO_19666
to be installed on the system. If PHCO_19666 is not
installed on the system, or if the application is linked
with libpthread.a, then memory growth can be controlled by
setting the maximum number of arenas to be 1.
JAGac40903; SR 8606125513
PHCO_20763:
This is a SP patch version of PHCO_20765.
PHCO_20555:
system() was calling fork() in multi-threaded
applications as a work-around for some locking issues
within dld.sl and libc. The cost of a fork() relative
to the cost of vfork() resulted in slower performance.
The specific issues were related to locking calling
made from the child process created by system() prior
to exec(). The availability of these locks could not
be guaranteed across a vfork() and hence the use of
fork() in the original implementation of system() for
11.00.
Resolution:
system() was changed to use vfork() for all
applications instead of using vfork() only for
non-threaded applications. sigaction() was changed
to not require a lock() around the sigsetreturn()
call when called from the child process created by
system(). This guarantees a lock-free path in the
child created by system(), thus enabling the change
to use vfork().
JAGab78389, JAGab81794; SR 8606108045
In applications using large (shared memory based)
malloc, malloc can return an invalid quad 2 "buffer"
that overlays the stack. This invalid buffer results
from incorrect coalescence of a quad 2 buffer with a
quad 3 mmapped buffer.
Resolution:
The first quad 3 buffer for an arena is never
coalesced to the last quad 2 buffer.
JAGab72262
In threaded applications, malloc statically allocates
64 arena contexts and arena mutexes, regardless of
whether 64 are needed.
Resolution:
Only one arena and one arena mutex are statically
allocated. Others are dynamically allocated from that
one static arena. Only as many arenas and mutexes are
allocated as required.
JAGaa14937
Certain partners require additional undocumented malloc
statistics.
Resolution:
The __mallstat() api has had an additional command added
to read an additional statistic.
JAGaa26400 ; SR 8606114986
If dirname(3c) is given an argument string which begins
on a page boundary, and the prior virtual page is
unreadable for any reason, dirname() causes a segmentation
violation when it tries to look at the last byte of the
previous virtual page.
Resolution:
dirname(3c) checks that it is within the space of the
argument string before looking at a byte of the string.
JAGaa62439
In a multithreaded program, using popen(3C) and fork(2)
calls in different threads can cause a deadlock.
Resolution:
The popen(3C) code has been modified to release the
popen_rmutex lock before calling fork(). This lock is
basically used to update a linked list, namely
popen_table. In order to add the element to this list,
we need to know the pid returned by the fork(2) call.
The algorithm has been changed such that we identify a
free slot in the list(or allocate if none are free),
remove this element from the list, then call fork(2).
After fork(2) returns in the parent, we update the
element, grab the popen_rmutex and update the list
and release popen_rmutex. This avoids the deadlock.
JAGab77826; SR 8606107568
regcmp() stack is not LP64-safe
Resolution:
The data type inconsistency has been fixed by using
the correct data types.
JAGab71463; SR 8606104124
VxFS ACL fails with large UID's/GID's (>=0x80000).
Once the file has one such entry in its ACL list,
any subsequent acl operations return "Invalid Argument"
error:
[ aldan:/mnt ] (90) touch TEST
[ aldan:/mnt ] (91) setacl -m user:12345678:r-- TEST
[ aldan:/mnt ] (92) getacl TEST
acl failed for file "TEST", Invalid argument
The problem was traced to libc code, where the uid in
acl entry is masked by global kernel defenition
IDDONTCARE, which is set to 0x80000. When retrieving
ACL records of a file, the first occurance of such
record is assumed to be the end of list. The lack of
remaining entries then causes EINVAL (Invalid Argument)
error to be returned.
Resolution:
The change has been made to check taclp->a_type
against IDDONTCARE rather then checking field a_id.
This will ensure, that the ACL entries with UID/GID
grater then the value of IDDONTCARE (0x80000) will not
fail. The change will make the code work exactly as a
respective piece in kernel, which has not been causing
any problems as of yet.
JAGab76091 JAGab76238; SR 8606106738
An array that stores the pointers to list of domain names
in the search list is terminated with a NULL pointer.
A pointer dereference was being done and dereference of
a NULL pointer was causing a core dump.
Resolution:
A check is made for the NULL pointer without dereferencing
it.
JAGab72180
res_send call does not close socket descriptors under MT
environment.
Resolution:
The code changes made to frontend was restored to the old
state and also the dns backend was restored to original
code before the IPv6 changes were made.
JAGab82346
The dns backend was modified for IPv6 changes. During
this course, host address type was being passed from the
front end getXXbyYY calls to the backend. RPC calls use
dns backend directly through switch and not through
getXXbyYY frontend calls. As the rpc were not passing
this host address type the backend returns NULL, and the
rpc calls fail.
Resolution:
The code changes made to frontend was restored to the old
state and also the dns backend was restored to original
code before the IPv6 changes were made.
JAGab68997
The host address type in the returned hostent structure
was not being set to correct value when IP address was
being passed to gethostbyname call.
Resolution:
The code changes made to frontend was restored to the
old state and also the dns backend was restored to original
code before the IPv6 changes were made.
JAGab71997
The environ(5) manpage states that the TZ environment
variable can be of the form:
[:]STDoffset[DST[offset][,rule]]
Furthermore, the rule has the form:
date/time,date/time
where the first date/time specifies when to change from
standard to summer time, and the second date/time
specifies when to change from summer to standard time.
This rule works in the northern hemisphere, where the
first date number is less than the second date number.
For example, in Atlanta, Georgia, I might use the
following TZ variable:
export TZ=EST5EDT4,M4.2.0,M10.5.0
Which indicates that I change from standard to summer
time on Sunday, the 2nd week of April, and that I change
from summer back to standard time on the last day of
October.
Notice that in this case 4 < 10, so this works. On the
other hand, in the southern hemisphere, I might use a
TZ variable like the following:
export TZ=SAT3XYZ2,M9.1.0,M1.2.0
This states that we should change from standard to
summer time on Sunday, the first week in September,
and from summer to standard time on Sunday, the second
week of January.This dose not work because 9 > 1 (date1
> date2). The defect here is that the date2 is not
considered as in the next year. It is considered to be
in January of same year of date1 instead of the next
year.
Resolution:
A new condition is added in check for entry into the
DST. This new condition will take care of the
southern hemisphere
JAGab75719; SR 8606106516
When the conditions are where the source offset is
greater than the destination offset and the count is
greater than the terminated source string to concatenate,
strncat can move few than the number of bytes in the
source string.
Resolution:
Corrected faulty strncat logic.
JAGab84233
PHCO_20369:
This is an SP patch version of PHCO_20555.
PHCO_19691:
In 32 bit application, the value of time_t can only be
up to 2038, which we have rules to cover in the file
/usr/lib/tztab. In a 64 bit application, we allow
time_t to bigger than INT_MAX which means larger than
2038. We have a routine to check for this for 64 bit.
The defect here is that, a call to bsearch is made
before this check and that call is assuming that the
input will be less than 2038. But for years beyond
2038 bsearch returns NULL and dereferencing is done
with this NULL pointer and resulting in dumping core
when the application is compiled with -z option.
Resolution:
Check for return value from bsearch,If the return value is
NULL don't dereference.
JAGab72590; SR 8606104837
1. ctype(3C) routines are too slow and the macros
have too many instructions because they contain
function calls.
2. The performance of singlebyte applications using
the ctype routines needlessly degrades in multibyte
locales.
3. strcasecmp(3C) and strncasecmp(3C) are too slow
compared to other vendors because they rely on
_tolower(3C) which is a macro mapped to a function
call.
Resolution:
To allow ctype routines to always perform table lookup,
code populating the tables pointed into by __SB_masks,
__SB_upper, and __SB_lower has been moved from
__ctype_init() in NLSsetup.c to update_locale() in
setlocale.c Now __SB_* pointers are *never* NULL and
are used in all locales by ctype and wctype routines
for characters codes from -1 through 255.
Key to this change is the X/Open and HP specification
that the return value from a ctype API is valid only
for ints from -1 through 255. If the API receives any
other argument value, its behaviour is undefined. This
fact also entailed a change to atol.c (for atoi() and
atol()) to make sure sign extension of a char converted
to an int does not corrupt an argument passed to
isdigit().
Backward compatibility forces us to limit these changes
to internal libc use, since an application built with
the new ctype.h and new libc but running with an older
libc will crash. As a safeguard, all changes to ctype.h
have been placed within #ifdef _SB_TABLE_LOOKUP and
make.defines has been modified to strip those changes
before a ctype.h is built for shipping (in pub_hdr/).
Other files have been changed to ensure the faster
ctype macros are always used in libc.
JAGaa43050 JAGaa05164
mktime() ignores tm_isdst if a previous TZ value had
no dayl. sav. time
Resolution:
When the mktime() is invoked with different TZ
environment variables, a static local buffer "tzbuf" is
used in localtime_r() in ctime.c to store the time zone
name(For ex: PSD8PDT, UTC0 etc..). mktime() looks at
/usr/lib/tztab file for getting the information on day
night savings for the set time zone(Please look at man
pages for tztab). The idea behind using the static buffer
is to avoid reopening of the file /usr/lib/tztab if its
already processed. However, if there is a change in
timezone in between, the file should be reparsed.
The source file ctime.c is modified to check whether
the TZ environment variable has changed and if so,
the TZ variable is copied before further processing
takes place.
JAGaa44810; SR 5003444117
strptime(3C) was unable to process format strings
containing "%EY" or "%EC%Ey" directives and returned
NULL. These directives are used by the era date format
in Chinese locales zh_TW.ccdc and zh_TW.big5. The era
date format (and this defect) are only in the 2 above
locales supplied by HP. The failure is not caused
by a particular date.
Resolution:
A correct algorithm is used to parse the %EY or %EC%Ey
directive.
JAGaa08262 JAGaa47278
When calling strncmp with one valid string pointer,
a null pointer an a length of zero strncmp will return
the first charater or the negative of the first
character of the valid string instead of an expected
zero.
Resolution:
Change the sequence of condition testing in strncmp.
SR 5003463463; JAGab17255
memchr() was not treating the match character as an
unsigned character.
Resolution:
When comparing a negative integer on a short string
memchr did not convert the negative integer to an
unsigned char.
JAGaa93243
Strrstr(s1, s2) sometimes claims that a match is found
when actually there is no match. Consider an example.
s0 = "ABCDEFG";
s1 = s0;
s1 ++; /* s1 points to "BCDEFG" */
s2 = "ABCDEFG".
Now strrstr(s1, s2) returns "ABCDEFG", which means that
a match is found. It should have returned NULL.
The problem is caused by the fact that when characters
in s2 matches characters in s1, the algorithm keeps
going backwards to find if more characters match without
checking if the beginning of s1 is reached.
Resolution:
A check is added to make sure that when the beginning
of s1 is reached, the search stops.
JAGaa41142
Some PA2.0 assembler syntax was used in the 1.1 portion
of the code. The current 11.X assemblers accept this
syntax and emit the correct op codes for 1.1 machines.
Resolution:
changed syntax to conform to PA1.1 syntax.
JAGaa62460
Pointer subtractions involve NULL pointer. In 64-bit,
such subtraction results in overflow or underflow, and
assigning large numbers to pmatch[i].rm_eo.
Resolution:
JAGaa46130
If an internationalized application calls setlocale()
more than once to change its locale environment, it
continuously leaks memory.
Resolution:
Memory needs to be dynamically allocated by setlocale()
to save the locale specific information when changing
the locale environment. The previous setlocale()
implementation didn't free the memory when changing the
locale environment. The new implementation frees the
memory used to save the current locale information and
allocate another memory to save the required locale
information.
JAGaa06047
An internationalized application which frequently calls
setlocale() to change its locale environment will
encounter a serious performance problem.
Resolution:
Separate shared libraries implement the locale specific
information. They are loaded into an application by
setlocale() to change the locale environment. The
previous setlocale() implementation used to load the
required locale shared library and unload the one
currently in use when changin the locale environment.
Loading and unloading locale shared libraries are an
expensive operatoin. The new implementation caches up
to 10 locale shared libraries in the application for
the quick locale switch. And there used to be a number
of str*() and mem*() function calls just to copy and
compare short strings. They have been replaced by
equivalent macro versions to eliminate the function call
overhead.
JAGaa08086
A multi-threaded internationalized application fails in
setlocale() for the restore operation using the buffer
returned by the previous call to setlocale(). This patch
should be installed for such applications.
Resolution:
In a multi-threaded environment, setlocale() and
__setlocale_r(), which exists only for libd4r library,
used to share the implementation in the way that
setlocale() calls __setlocale_r() after protecting itself
against simultaneous calls from more than one thread.
__setlocale_r() erases the previous locale names (set
the first byte to '\0') contained in the passed buffer,
which has caused the problem. The new implementatoin of
setlocale() doesn't call __setlocale_r(). Another
internal function was introduced to implement the common
portion that can be shared by both functions.
JAGaa32025
When memcmp is called with a negative value in the
third argument, memcmp returns an incorrect value.
The third argument is size_t which should really be
treated as a large unsigned quantity.
Resolution:
Negative values passed to memcmp() are converted to
large unsigned values and the comparison proceeds as
normal.
JAGaa24067
VxVM pathnames not recognized by blocktochar().
Resolution:
__blocktochar() and __chartoblock() routines were
rewritten to make them more general and accept any
naming convention for device files.
JAGab69351; SR 8606103064
The calling overhead for a shared library imposes
performance penalities on shared libraries. The normal
calling convention for routines that are within an
executable is a simple branch instruction. This is not
possible for shared libraries because they exist in
different spaces than the executable and they can load
to diferent addresses each time they are loaded. As a
result the calling convention requires the use of stubs
and tables to provide the mapping between the call in
the executable and the entry in the library. This will
entail a couple mispredicted branches along with the
inter-space branch.
Resolution:
The compiler has several pragmas that can be used to
cut down on the calling overhead for shared libraries.
In order to make use of these pragmas the header files
for libc needed to change to allow building the library.
JAGab15584 JAGab16669
strtod("NaN",ptr) on HPUX 11.0 incorrectly returns a ptr
past the '\0'.
Resolution:
strod(3C) code was changed to fix the incorrect behaviour.
JAGaa05185; SR 4701389726
glob(3) does not treat // consistently in a directory
path.
Resolution:
The glob(3C) was removing only the last '/' character
(if any) in a patch string. Now, glob(3C) is modified
to take care of multiple occurance of trailing '/'s in
the patch string.
JAGaa94846; SR 1653297432
The strxfrm incorrectly assumes that the variable
holding the length of the input buffer includes the
space for null character at the time of the check.
Resolution:
The algorithm for strxfrm was changed. There is a
check in this algorithm to find out if the size of
transformed string is more than the input buffer.
The condition does not take byte taken by null
character of the transformed string. This results
in null character being placed at arbitrary address.
Hence the transformed string may contain junk characters.
The condition was changed to take null character into
account.
JAGaa95471
When the getcwd() algorithm crosses a mount point on the
way to the root, it scans the entire directory containing
the mount point with stat(). When the mount point has
"sibling" directories that are also mount points, it is
very likely that the algorithm will stat() the root of
filesystems not on the current path, which is an expensive
operation both in terms of time and system resources.
Resolution:
The algorithm now remembers all mount points that it
crosses, so that it only ever needs to fully scan a
directory for a mount point once. Also, the new algorithm
pre-initializes the table of mount point names so that,
in most cases, it never needs to scan for a mount point
at all. Instead, it guesses the correct name immediately,
avoiding the expensive scan of the directory and
(possible) other remote filesystems. There are several
other minor improvements to the function to help pay for
the overhead of keeping track of mount points.
JAGaa01123, JAGaa40237
The contents of the struct utmp is cleared when end of
file is reached. But the struct utmp should be cleared
only for partial reads.
Resolution:
Code changes are done in the getut.c file to retain
the struct utmp contents when end of file is reached,
it is cleared only during partial reads.
JAGaa05209
Running the following program:
main()
{
union {
unsigned long long dbl[2];
long double ldbl;
} u;
u.dbl[0] = 0x7FFFF80000000000ULL;
u.dbl[1] = 0;
printf("%10.4Le\n", u.ldbl);
}
produces the output:
N.aN00e-01
which is incorrect.
Resolution:
Code is added to handle NAN and Infinity in case
of long double.
JAGaa86217
Excessive mutex contention and mutex locking overhead
in malloc. This was partially addressed by multiarena
malloc, but certain third-party malloc benchmarks
indicated that HP's malloc performance was still
uncompetitive.
Malloc heapsize statistics were incorrect due to
multiarena algorithm changes, which caused each arena
to contain holes belonging to other arenas. When total
heapsize was computed, these holes were overcounted
resulting in large overestimates of total heapsize.
In addition, the calculation was done under mutex lock,
which gave unacceptable performance for some third party
applications.
Multiarena malloc had assertions turned on around mutex
locks and unlocks.
Multiarena malloc aborts in 64-bits when _M_ARENA_OPTS
is set, due to a missing function prototype for getenv()
in libc_init.c.
Multiarena malloc does not allow fewer than 4 arenas
to be configured, resulting in at least 4X the
pre-multiarena memory consumption for a program which
runs threads sequentially.
Resolution:
Overview
A thread local cache is provided for each thread. Freed
blocks are cached rather than coalesced, and requests are
satisfied out of cache if possible. This provided three
performance benefits: 1) cache access does not need to
be mutexed, because it is thread private. 2) coalescence
is deferred, speeding up free(). 3) Blocks of sizes that
have previously been requested are available, and do not
need to be split if these sizes are requested again,
potentially speeding up allocation (if the same sizes tend
to be requested again).
A roughly 2X speed up over multiarena malloc has been
measured for some benchmarks.
Thread local cache is turned off by default. It can only
be turned on by setting _M_CACHE_OPTS.
Note: The thread local cache depends on a change in
libpthread which is supplied in libpthread patch
PHCO_19666. If _M_CACHE_OPTS is configured to activate
cache on a system which does not have PHCO_19666
installed, the configuration is ignored and cache is not
used.
Heapsize calculation was corrected to give accurate
values with no overcounting. A nonlocking API
(__mallstat) to report heapsize has been provided.
__mallstat() is a new HP-private API. It is planned to
be expanded for other types of statistics reporting.
Assertions have been turned off around mutex operations.
stdlib.h has been included in libc_init.c. This supplies
the function prototype for getenv().
Details about the thread local cache:
For each thread, the thread local cache layer sets up a
private cache to which access is effectively nonthreaded,
so no mutex lock is required on access. Since mutex
locking is expensive, this gives a significant
performance improvement. The thread local cache saves
blocks of sizes that have previously been used, and thus
may be requested again. It also provides deferred
coalescence of freed blocks: allocations from cache are
never split, and cached blocks are not coalesced.
The size of the cache is configurable by the number of
free pointers allocated. Once all the free pointers are
in use, in the current implementation, we never remove
anything from the cache to make room for something new.
The cache is organized as powers of 2 buckets. I.e.
there will be a bucket for all blocks in the size range
64 - 127 bytes, another for 128 - 255 bytes and so on.
Blocks are linked in the bucket in order of decreasing
size. This allows a (somewhat) better than linear search
for the best fit to a request. Currently, buckets from
2^0-31 are permitted, and the maximum is configurable.
The low end buckets are unused due to alignment, header
and padding overhead, and small block grain.
The number of cache pointers, number of buckets, and
the retirement time are configured by the environment
variable _M_CACHE_OPTS. E.g.
export _M_CACHE_OPTS=1024:32:20
This means that "__bucket_size" is 1024, "__buckets"
is 32, and "__retirement_age" is 20*60 secs (20 minutes).
[Note that in the environment variable, retirement age
is expressed in minutes, while in the internal variable
__retirement_age it is stored as seconds.] The number of
cache pointers, which equals the maximum number of buffers
that will be cached for the thread as a result of calls to
free() is __bucket_size*__buckets, or, for this example,
is 1024*32 = 32K.
If _M_CACHE_OPTS is undefined, or if it is defined but
__bucket_size is 0, then cache is disabled. If
__retirement_age is 0, retirement is disabled. The maximum
value for __bucket_size is 8*4096. The minimum is 0. The
maximum value for __buckets is 32. The minimum is 8. The
maximum value for __retirement_age is 24*60*60 seconds
(24 hours), which the user would specify in the environment
variable as 1440 minutes (24*60). The minimum value is 0.
When a thread exits, its cache is stored for reuse and it
is timestamped. As threads are created, they reuse
available caches. As threads are created or exit, if the
__retirement_age is nonzero they check whether the
difference between the timestamps of unused caches and the
current time have exceeded the __retirement_age. Those
caches that have been unused for longer than
__retirement_age are retired, i.e. all their memory is
freed with _free(). [Note that retirement is not guaranteed
to occur exactly at the time when __retirement_age is
reached, and there are possible scenarios in which unused
caches are never retired because no thread exits or starts
up.]
The mimimum number of arenas that may be configured
via _M_ARENA_OPTS has been reduced from 4 to 1. Configuring
1 arena approximates pre-multiarena behavior; with this
configuration, a program that launches threads sequentially
will not experience large increases in memory consumption
due to round-robin thread allocation to arenas.
Alternatively, activating cache allows blocks allocated by
the first thread to be reused in subsequent threads.
JAGaa40240, JAGaa01969, JAGab19981, JAGab16523, JAGab43915
JAGaa26400, JAGab43837, JAGab53676, JAGab19980;SR 8606101146
regexec() matches "." in empty string "" with locales
other than C.
Resolution:
regexec(3C) was matching a "." in an empty string "".
The problem was due to an out-of-bound array access
without checking the end-of-string. The changes made
are only to make sure that the accesses are valid.
JAGaa53114; SR 4701413906
PHCO_19491:
Libc does not know about the Magic Cookie that identifies
the these new filesystem types that will be enabled in the
future.
Resolution:
Add to the statfsdev module the identifiers for the
new filesystem types.
JAGab68821; SR 8606102818
PHCO_19391:
In a multithreaded application, if one of the threads
vforks() and does an exec(2) call(except the execve(2)
call) there is a possibility of a deadlock in the other
threads.
Memory leak in applications using vfork and exec(2)
calls except execve(2) call.
Resolution:
Fixed the deadlock in a multithreaded application,
if one of the threads vforks() and does an exec(2)
call(except the execve(2) call).
Fixed the memory leak in applications using vfork and
exec(2) calls (except execve(2) call).
JAGaa55615; SR 8606102680
Libc provides JFS ACL support through two new acl(2)
syscall:
acl()
aclsort()
JAGaa95281;SR 4701420935
Libc provides JFS support through a routine called
__fstatvxfs(). Currently, __fstatvxfs() implementation
supports only VxFS disk layout version 2 and version 3.
__fstatvxfs() needs to be updated to support the new
VxFS disk layout, version 4.
Resolution:
The following set of APIs in libc has been enhanced to
understand a VxFS filesystem with the new version 4 disk
layout:
fstatvfsdev
fstatvfsdev64
statvfsdev
This is accomplished via updating __fstatvxfs() to
understand VxFS disk layout version 4.
JAGaa95281;SR 4701420935
PHCO_19090:
atoi() calls the ctype routines isdigit() and isspace()
(although the call to isdigit() has been replaced by a
local macro in a later version). The ctype APIs are defined
only for ints -1 through 255. Any other argument causes
undefined behavior.
In our implementation, an invalid code passed to a ctype
API translates into an invalid array index which can lead
to the retrieval of an invalid value or to a segmentation
fault.
So when atoi passes a char of value greater than 127,
the char (signed) is implicitly converted to an int and
sign extension takes place since the high bit is 1. The
resulting corrupted value is then received by the ctype
API and causes undefined behavior.
Resolution:
All ctype APIs called in atoi() are passed an unsigned
char to avoid sign extension corrupting the value.
JAGab25446, JAGaa05164; SR 8606100279; SR 5003416776
PHCO_18227:
When the corefile generated by abort(3C) is read by DDE,
one of the things it checks in the stackUnwindDescriptor
is if the frame where the PC is is an alloca frame. If it
is an alloca frame, it needs to find the StackPointer in
gr3. It will then check all the frames more recent than
the one where it found the alloca frame to see if any
procedure saved off the callee save registers. If no frame
saved them, it will use the gr3 found in the save_state.
Note that the callee saved register are not saved into the
save_state in syscallinit unless the process is being
traced. The calling convention only requires a callee
saved register to be written to the stack if a function
would modify it. Hence, in the normal path of a system
call, the user register content may not be written out
to the stack at all; it could only be saved at context
switch, or it might be saved/restored on a kernel stack
at the entry/exit of a function that modifies the
register. What appears to be happening is the callee
saves are not preserved when we enter the syscall _kill().
Resolution:
Libc API abort(3C) can save the callee save registers
when entering this procedure.
JAGaa43927; SR 5003443143
If the last week of the previous year is 52 and a week
contains days in the previous years and less than 4 days
in the new year, strftime() returns week number 52 for
those days in the previous year and 53 for those in the
new year.
Resolution:
Changed strftime() to return the week number of the last
week of the previous year for weeks containing days in
the previous year and less than 4 days in the new year.
JAGaa46298
Enhance current implementation to provide multiple arenas,
each with it's own lock, from where malloc can allocate.
Threads are distributed amongst these arenas, and thus
increasing performance due to reduced lock contention.
Resolution:
This patch provides multiple arenas, where malloc can
allocate space from, and a lock for each arena. Threads
are distributed among the arenas. Two HP-UX environment
variables have been introduced, _M_ARENA_OPTS, and
_M_SBA_OPTS.
(1) _M_ARENA_OPTS can be used to tune the number of
arenas and the arena expansion factor. In general, the
more threads in an application, the more arenas should
be used for better performance. Expansion factor
controls how many pages to expand each time, assuming
the page size is 4096 bytes. The number of arenas can be
from 4 to 64 for threaded applications. For non-threaded
applications, only one arena is used. If the environment
variable is not set, or the number of arenas is set to
be out of the range, the default number of 8 will be
used. The expansion factor is from 1 to 4096, default
value is 32. Again, if the factor is out of the range,
the default value will be used. To use _M_ARENA_OPTS,
$ export _M_ARENA_OPTS=8:32
This means the number of arenas is 8, and the expansion
size is 32*4096 bytes.
In general, the more arenas you use, the smaller the
expansion factor should be, and vice versa.
(2) _M_SBA_OPTS is to turn on the small block allocator,
and set up parameters for the small block allocator,
namely, "maxfast", "grain", "num_smallblocks". (see
man page of mallopt() for details about small block
allocator, and its parameters.) Applications with
small block allocator turned on usually run faster
than with it turned off. Small block allocator can be
turned on through mallopt(); however, it is not early
enough for C++/Java applications. The environment
variable turns it on before the application starts.
Mallopt() call can still be used the same way. If the
environment variable is set, and no small block
allocator has been used, the subsequent mallopt()
calls can still overwrite whatever is set through
_M_SBA_OPTS. If the environment variable is set, and
small block allocator has been used, then mallopt()
will have no effect. To use this environment variable,
$ export _M_SBA_OPTS=512:100:16
This means the maxfast size is 512, the number of small
blocks is 100, and the grain size is 16.
You have to supply all 3 values, and in that order. If
not, the default ones will be used instead.
(3) _M_ARENA_OPTS has no effects on non-threaded cases,
while _M_SBA_OPTS has.
(4) For even better performance gains, the following
2 patches (or later ones) are recommended, PHKL_16368
(libpthread) and PHKL_16236 (kernel).
JAGaa32680
With the porting of OSF code for locales, the performance
of strcoll degraded up to 20 times. This happens because
of the generic architecture of locale engine, slow shared
library access and use of inefficient algorithms. The
performance has been enhanced a lot for single byte
locales with this fix by using better algorithms.
JAGaa00524; SR 1653214346
Single byte locales did not collate properly when an old
version of single byte locale (using multi-byte routines
for single byte locales) is used with new version of libc
(where single byte routines are used for single byte
locales). The original change was made in 10.10.
JAGaa18768, JAGaa18769
Some applications attempt to statically link with libc
to improve performance. This can lead to call graph
failures because a archive bound application is depending
on a shared library. Use of libcres.a will eliminate this
problem because there are no external dependencies in this
library.
Resolution:
Prior to this patch the only way to link various string
and memory functions archived was to link libc archived.
This leads to problems with runtime failures when the
dependent libc.sl changes and the the archive linked code
can no longer resovle the required symbols. libcres.a
contains most of the string and memory functions and a few
other functions that make no calls to other routines. Some
applications may see a performance improvement linking this
library archive while linking the rest of the application
shared.
JAGaa43395
Internal libc routines need to support VxVM volume pathname
conventions.
JAGaa42843
The libc routine memchr( ) does not perform well when static
branch prediction is enabled on executables due to a lot
branches being misprediced . This is a performance hit
when memchr is called a lot of times in executables.
JAGaa13890, JAGaa41248 ; SR 5003428409
mktime() always returns 0 for tm_isdst, regardless
of whether daylight savings is in effect for dates beyond
Tuesday January 19 03:14:07 UTC 2038. Since strptime()
obtains this value from mktime(), it also returns the
incorrect value for tm_isdst for those dates.
Resolution:
There is no timezone adjustment rule for years past 2038
that can be used to correctly determine the value of
tm_isdst. To work around this for now, the rule for the
year 2038 is used for those years.
JAGaa16206, SR 4701405688, JAGaa23230 SR 4701405696,
JAGaa23233 SR 4701405720
strptime() needs to check if the return value of
mktime() is within the range of seconds that it supports
because mktime() supports a much wider range of dates
than strptime() in 64-bit mode.
Resolution:
strptime() was modified to check the return value of
mktime() to determine if the input date is within the
supported range, which is Friday December 13 20:45:52
UTC 1901 and Friday December 31 23:59:59 UTC 9999.
JAGaa23231 SR 4701405704, JAGaa23232 SR 4701405712
In 64-bit HP-UX, getdate() needs to check if the return
value of mktime() is within the range of seconds that it
supports because mktime() supports a much wider range of
dates than getdate().
Resolution:
getdate() was modified to check the return value of
mktime() to determine if the input date is within the
supported range, which is Friday December 13 20:45:52
UTC 1901 and Tuesday January 19 03:14:07 UTC 2038 (in
32-bit HP-UX) or Friday December 31 23:59:59 UTC 9999
(for 64-bit HP-UX).
JAGaa26931 SR 4701409581
PHCO_18103:
getcwd() was using memcmp() with two structures which
were not properly initialized.
Resolution:
Replaced memcmp() call in getcwd() with comparison of
individual fields in the two structures.
JAGaa95447
PHCO_17601:
The problem was caused by excessive locking of /etc/mnttab
in the getmntent(3X) family of APIs, and by incorrect use
of the getmntent(3X) APIs by commands such as mount(1M)
and umount(1M).
Resolution:
In the patch, setmntent(3X) no longer uses a read lock
when opening the mnttab file, and a new API, delmntent(3X),
has been developed for use by commands that delete entries
from the mnttab file. Use of this patch will avoid a
possible deadlock situation during concurrent invocations
of mount(1M) or other commands that write to or read from
/etc/mnttab.
Excerpts From the Changed getmntent(3X) Man Page:
int delmntent(FILE *stream, struct mntent *mnt);
DESCRIPTION
delmntent()
Deletes all entries from the file stream opened
with setmntent that match both mnt_fsname and
mnt_dir in mntent structure mnt. If mnt_fsname is
a null pointer, all entries that match mnt_dir
will be deleted. If mnt_dir is a null pointer, all
entries that match mnt_fsname will be deleted. It
is an error if both mnt_fsname and mnt_dir are
null pointers. Note that stream must be opened
via setmntent for reading and writing (r+ or a+).
Upon return from the call to delmntent, the file
position indicator for the stream will point to
EOF.
RETURN VALUE
setmntent()
Returns a null pointer on error. setmntent()
attempts to establish an exclusive write lock on
the file it is opening, ie: when one of the
following types is passed to setmntent() to open
the file for write/update: "w", "a", "r+", "w+",
or "a+". If setmntent() cannot get the lock, it
returns a null pointer and sets errno to either
EACESS or EAGAIN.
delmntent()
Returns -1 on error. Sets errno to EINVAL if
stream or mnt are null pointers, or if both
mnt_fsname and mnt_dir in mntent structure mnt
are null pointers. Sets errno to EBADF if stream
has been opened for read (r), append (a), or
write (w). If the operation is successful,
returns the number of entries deleted from the file.
When no entries are matched, delmntent returns 0
and does not set errno.
endmntent()
Returns 1, and unlocks the file if it was locked
by setmntent().
EXAMPLES
The following code deletes an entry:
struct mntent mnt_entry;
FILE *fp;
int retval = NOT_DELETED;
mnt_entry.mnt_fsname = "/dev/vg03/lvol7";
mnt_entry.mnt_dir = "/disk7";
if ((fp = setmntent(MNT_MNTTAB, "r+")) != NULL) {
if (delmntent(fp, &mnt_entry) > 0)
retval = DELETED;
(void)endmntent(fp);
}
return(retval);
JAGaa01122, JAGaa01628
The first instruction of strlen() was a movb,=,n. The
condition code used is a 32 bit extract/deposit condition
code. Hence, if the lower 32 bits of address happen to be
zero the condition is satisfied and the branch is taken.
The same problem existed in the other three interfaces.
Resolution:
Changed the movb,=,n instruction to a cmpb,*=/copy
sequence. This instruction is functionally the same as
the movb,= but will work correctly for 64 bit addresses.
JAGaa93445; SR 4701418293
For certain years, strftime() with %V returns two
different week numbers for days in a week which
contains days in the previous year and less than 4
days in the new year. If there are less than 4 days
in the new year, it returns week number 53 for those
days, regardless of whether there is a week 53 in the
previous year; otherwise, it returns 1. It returns 52
or 53 for the days in the previous year. The week
number for the days in the new year should be the last
week of the previous year, if there are less than 4 days
in the new year in that week. In addition, the week
number for the days in the previous year should be the
same as that for the days in the new year.
---
Resolution:
Changed strftime() to return the week number of the
last week of the previous year for all days in a week
containing days in the previous year and less than 4
days in the new year. Return 1 for all days in the
week if there are 4 or more days in the new year.
JAGaa62691
An internationalized application encounters the memory
leak at every
setlocale(category, locale);
call to change the locale environment under any
condition except:
o LC_ALL environment variable is not set;
o Category parameter is LC_ALL; and
o Locale parameter is (explicitly specified) "C" or
"POSIX".
Most internationalized applications call the setlocale()
function in the form of:
setlocale(LC_ALL, "");
and encounter the memory leak if the call is made more
than once. Therefore, this patch should be installed
if an application needs to call the setlocale() function
more than once.
Resolution:
Necessary memory to save the locale specific information
used to be dynamically allocated at every setlocale()
call without freeing the memory allocated by the previous
call. The implementation has been changed to free the
previously allocated memory at every call before
allocating the new memory.
JAGaa92941; SR 1653294694
A socket used in libc times out, causing synchronization
loss and connection reliability problems.
Resolution:
The problem was solved by comparing the returned values
to that in the request.
JAGaa46458, JAGaa72866; SR 1653284414; SR 1653287904
The check for whether the root directory has been
reached in the case of a Loop Back File System (LOFS)
was not done correctly in getcwd().
Resolution:
Changed getcwd() to fill in the entire mystat structure
for the current directory and its parent directory and
then compare the entire two structures. The previous
code only compares the inode and device numbers. This
change ensures that cases where the inode and device
numbers are the same for both the current and parent
directory will be handled correctly.
An example of this, prior to apply the fix to getcwd(),
follows:
# mount /stand /stand/lofs
# cd /stand/lofs/build
# pwd
/build /* path obtained from getcwd() */
This is because the inode and device numbers for lofs
and stand are the same:
build: {ino = 4226; dev = 0x40000001; fstype = lofs;
fsid = 0xff000004}
lofs: {ino = 5376; dev = 0x40000001; fstype = lofs;
fsid = 0xff000004}
stand: {ino = 5376; dev = 0x40000001; fstype = ufs;
fsid = 0 }
/: {ino = 2; dev = 0x40000001; fstype = ufs;
fsid = 0 }
JAGaa86037; SR 4701416800
PHCO_16629:
memcmp(3C) returns incorrect values when compiled with
+DA2.0N. This is due to some recent performance
optimizations that were done on memcmp, which introduced
a problem where 64 bit registers are compared with 32 bit
compare instructions. This causes the upper 32 bits to be
ignored, which causes memcmp to return incorrect values.
memcmp also performs 64 bit compare operations on 32 bit
operands passed as parameters to these routines. This could
cause problems with high optimization which could leave the
upper 32 bits dirty and hence make memcmp return unexpected
results.
JAGaa41144, JAGaa41248; SR 5003438507
The performance of malloc has been improved by changing
the way the free memory blocks are maintained.
JAGaa17260
Parameters between 64-bit C code and 64-bit assembly
code were being passed incorrectly.
JAGaa35268, JAGaa32697, JAGaa40380
There was a performance degrade in some cases.
JAGaa40211
The ELF version of the linker enables SHLIB_PATH by
default.
JAGaa22065
setjmp/longjmp did not call the CXperf tool function
with the correct first parameter.
JAGaa32076
A performance enhancement for threaded applications
changed the grain size causing threaded applications
to use more memory.
JAGaa32072
PHCO_16130:
If old 10.20 locale which uses multi-byte routines
is used and it has collating element e.g. spanish,
strcoll and wcscoll will not perform correctly.
JAGaa18768, JAGaa18769
strptime(3C) returns an error when the %E conversion
specification is used in the C locale. It does not
fill in the tm_wday, tm_mon and tm_mday fields in the
tm structure when both the year and day of year are
supplied. It does not support dates beyond January
19 UTC 2038 in 32-bit HP-UX. It does not indicate
an error when a date that is out-of-range or
inconsistent input is provided. The resulting values
of tm_wday and tm_yday are off by 1 when tm_sec and/or
tm_min are initialized to -1 when the %j conversion
specification is used.
JAGaa06544; SR 5003416719
strptime() returns the same values for the tm_mday, tm_mon,
tm_yday and tm_wday fields in the tm structure for Feb 29
2000 and March 1 2000 if %A (or %a) and %U conversion
specifications are used. The output for March 1 2000 is
incorrect.
JAGaa13581; SR 1653269738
A call to getcwd() will fail if the root file system
is a loopback file system. This will not normally be
the case, but if chroot() has been called to set the
root directory, then this could be a loopback file
system (LOFS). A specific example of this is when
the anonymous ftp home directory is a LOFS as ftpd
will then use chroot() and can report:
550 getcwd: No such file or directory
JAGaa11165, JAGaa01441, JAGaa05219, JAGaa06021
SR#4701382374
getenv runs very slow for multi-byte languages like
ja_JP.SJIS. The performance for single-byte
languages is as good as C locale. JAGaa05075
SR#1653259333; JAGaa50639
getdate() fails to find a matching template when %r is used
in a template and there is at least one other template that
contains %H or %R, even though a matching template exist.
It also returns an error if a template contains %I but not
%p and a matching template exists.JAGaa00429, JAGaa10165,
JAGaa10166, JAGaa10167, JAGaa10168,JAGaa05222, JAGaa10164,
JAGaa10163, JAGaa08067, JAGaa10158,JAGaa12392;
SR 4701392977; SR 4701392969 ;SR 1653261081; SR 4701392928
SR 4701394650
The libc routine memcmp( ) does not perform well when static
branch prediction is enabled on executables due to the
high branch misprediction. This is a performance hit when
memcmp is called a lot of times in executables. JAGaa06535
PHCO_15768:
A flag in __regcomp_std() was set incorrectly which
caused the "match end of line" not being recognized.
Setting of the flag is corrected. JAGaa01206
Commands dump core if LC_COLLATE is set to non C
locale but LC_CTYPE is set to C locale. If there
is no difference between LC_COLLATE and LC_CTYPE,
there is no problem. JAGaa01206
The calculation for length of string in __strnlen() API
for 64-bit mode was incorrect. JAGaa01674
The previous syslog code, in some places, kept filling
the buffers without checking for the buffer limits.
Once the size of buffers were exceeded a core dump
would occur. JAGaa01271
Original usleep(3C) code didn't have the functionality to
handle multi-threaded applications. Now it uses
sigtimedwait(2) for handling threaded applications.
JAGaa01457
When Null pointer was being passed as argument for fputs
and puts, fputs should return 0 and write nothing to the
file, puts should return 1 and write '\n' to stdout.
JAGaa01279 JAGaa01511 JAGaa01513 JAGaa01515
The 5th and 8th arguments are corrupted during the course
of execution of syscall() API. JAGaa04782
The fix to setjmp() function in patch PHCO_14102 didn't
take care of case where the program is compiled with
64-bit mode (+DA2.0W) and -z compiler option.
JAGaa01982
PHCO_14704:
"struct stat64" in the internal 64-bit interfaces
(i.e. __ftw64(), __nftw64() and __nftw2_64()) needs to
be changed to "struct stat" to be consistent with the
changes made to ftw.h to provide Large Files support
for C++ applications. This change is needed in order
for libc to compile with the changes in ftw.h and has
no effect on functionality. JAGaa01664.
Mutex was not released before returning to the
caller when sigspace() is called by the process
running on the alternate signal stack; a single
memory space was shared among all threads within
a process. JAGaa01033 JAGaa01062
There was an assumption that more than 254 arguments
wouldn't be passed to execvp(). This number was
hard-coded in the implementation. JAGaa00583
Enhancement request for providing a new threads API
__thread_detach(). JAGaa01380
An internal function called by glob() attempts to free()
the same block twice. JAGaa01494
This is an enhancement request to provide jmp_buf pointer
in the hook functions of HP CXDL Development Tool. These
hooks are called from setjmp() and longjmp() APIs while
applications are linked with HP CXDL Development Tool.
JAGaa01603
Memccpy() doesn't detect the value of 0 at address 0.
JAGaa01280
This regcomp() defect was caused by copying one NULL
string pointer to another without any checking.
JAGaa01396, JAGaa01496, JAGaa01497
strptime(3C) does not produce the correct week number for
dates in a year that begins on a Sunday or a Monday.
JAGaa00976 1653231456
getlogin(3) API in libc returns NULL when the tty is
console. Hence the utilities like passwd print error
messages when they use getlogin() API to access the
login name of the user. JAGaa00533 5003380394
The gets(3S) API can fail to release a lock after
encountering an EOF condition. This will cause another
thread in the application doing an i/o operation on stdin
to hang, leading potentially to an application deadlock.
JAGaa01583 ;SR 4701384214
Code cleanup done in getcwd.c. User behavior unchanged.
JAGaa01101
PHCO_14102:
The problem was introduced with the addition of a new
symbol in API malloc().
Support for CXperf performance tool was added in
setjmp/longjmp() family of calls. If application is run
with CXperf tool, then setjmp/longjmp() APIs have mechanism
coded in order to gather correct performance statistics.
HP-UX enforces that variable lengthes should not exceed
1024. In catopen(3C), the string that represents the
variable LANG was strcpy'ed into a buffer with a fixed
size MAXPATHLEN (1024). This caused
coredump when strlen(LANG) is longer than 1024.
The size of the string, passed to perror, plus message was
not checked and could have become larger than the size of
the allocated output buffer. In such situations perror
would have coredumped.
Signal mask was not restored for this corner case.
This problem only occurs when 1) large malloc has been
enabled, ie: the M_ENABLE_MMAP command has been passed to
mallopt(), and 2) the initial size request to malloc() is
so large that malloc() searches all 4 memory quadrants and
it is unable to find a large enough block.
In the event that times(2) fails in a multi-threaded
application, clock(3C) does not release the mutex. This
will cause the next thread that invokes clock() to wait
forever for the mutex, in effect, causing the application
to loop forever.
NIS uses dbm to to manage its data. Because of unlucky
splitting, the '.pag' file has a large empty area which
causes the NIS file transfer to fail because it takes
longer than 25 seconds for dbm to get between keys.
PHCO_13412:
The assembly code expects the quad floating point
information to be passed by address. The C code that calls
it is passing it by value. In 32-bit this pass by value
would be converted to an address. In 64-bit it is passed by
value.
PHCO_13283:
The setjmp(3c)/longjmp(3c) APIs did not have a mechanism
which enabled correct performance statistics to be gathered
with the HP CXDL Development Tools.
The implementation of the wcswidth(3c) API fails to
comply with specification if the locale dependent
version of wcswidth does not comply.
When calling sigsetjmp() and then siglongjmp() from
non-position independent code. GR is not saved.
Enhancement:
No (superseded patches contained enhancements)
PHCO_25707:
Enhancements were delivered in this patch or one it has
replaced.Please review the Defect Description text for
more information.
SR:
8606231691 8606254777 8606238389 8606262356 8606256907
8606125689 8606243323 8606225355 8606199060 8606206070
8606211883 8606205180 8606213123 8606204965 8606215364
8606194394 8606217381 8606202970 8606203226 8606158464
8606212783 8606196622 8606186527 8606165366 8606177629
8606178299 8606179946 8606172344 8606188513 8606196866
8606185984 8606133330 8606164457 8606170481 8606172179
8606162140 8606128089 8606130241 8606152550 8606129543
8606175166 8606143128 8606102984 8606147002 8606134279
8606141866 8606156311 8606129009 8606140246 8606136018
8606126100 5003424531 8606125006 8606125009 8606125010
8606125320 8606125513 8606107568 8606104124 8606106738
8606106516 8606104837 5003444117 5003463463 8606103064
4701389726 1653297432 4701413906 8606102818 4701420935
8606100279 5003443143 1653214346 4701405688 4701405696
4701405720 4701405704 4701405712 4701409581 4701414862
1653294694 1653284414 4701418293 5003438507 5003416719
1653269738 4701374496 4701374470 4701374504 4701376756
5003392126 1653228304 1653119560 5003156760 5003380394
1653231456 1653259333 4701382374 1653255513 1653257121
1653261081 1653287904 1653294272 4701382259 4701384214
4701385336 4701389916 4701390120 4701391243 4701392928
4701392969 4701392977 4701394395 4701394650 4701416800
5003396234 5003416776 5003428409 5003436451 5003436923
8606101146 8606102680 8606104633 8606106818 8606106824
8606106825 8606106827 8606108045 8606109096 8606109646
8606112024 8606114983 8606114986 8606114988 8606114994
8606115002 8606115130 8606239637
Patch Files:
OS-Core.C-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libc.a
/usr/lib/libcres.a
OS-Core.C-MIN-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libc.a
/usr/lib/pa20_64/libcres.a
OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libc.2
OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libc.2
ProgSupport.PROG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libp/libc.a
ProgSupport.PROG-AX-64ALIB,fr=B.11.00,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libp/libc.a
ProgSupport.PROG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libpicc.a
what(1) Output:
OS-Core.C-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libc.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 09:50:45 $
OS-Core.C-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libcres.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 11:52:47 $
OS-Core.C-MIN-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libc.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 10:16:52 $
OS-Core.C-MIN-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libcres.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 11:49:30 $
OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libc.2:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 10:09:29 $
OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libc.2:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 09:47:27 $
ProgSupport.PROG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libp/libc.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 09:53:47 $
ProgSupport.PROG-AX-64ALIB,fr=B.11.00,
fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/pa20_64/libp/libc.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 10:18:47 $
ProgSupport.PROG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
/usr/lib/libpicc.a:
$ PATCH/11.00:PHCO_25976 Aug 8 2002 09:48:06 $
cksum(1) Output:
OS-Core.C-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
585848198 2185380 /usr/lib/libc.a
OS-Core.C-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
441138708 68056 /usr/lib/libcres.a
OS-Core.C-MIN-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
4032845599 3671626 /usr/lib/pa20_64/libc.a
OS-Core.C-MIN-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
1917826457 67350 /usr/lib/pa20_64/libcres.a
OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
4274312965 1568544 /usr/lib/pa20_64/libc.2
OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
4098730253 1560576 /usr/lib/libc.2
ProgSupport.PROG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
1551054401 2558624 /usr/lib/libp/libc.a
ProgSupport.PROG-AX-64ALIB,fr=B.11.00,
fa=HP-UX_B.11.00_32/64,v=HP:
820480992 4062032 /usr/lib/pa20_64/libp/libc.a
ProgSupport.PROG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
3242836736 2326612 /usr/lib/libpicc.a
Patch Conflicts: None
Patch Dependencies:
s700: 11.00: PHCO_23092 PHKL_18543 PHKL_20236 PHKL_22677
s800: 11.00: PHCO_23092 PHKL_18543 PHKL_20236 PHKL_22677
Hardware Dependencies: None
Other Dependencies:
PHCO_24148: JAGab20870
The tzset() behaviour have been changed to take default TZ
values from the file /etc/default/tz. A sample file is
released as patch PHCO_23652. The /etc/default/tz included
in the patch contains the earlier default value ie.,
EST5EDT. So unless the user explicitly changes the value
contained in the file the tzset changes are transparent to
the user. The file /etc/default/tz contains the timezone
value set by tzset() when the environment variable TZ is not
set. The format for the file is same as TZ format without
the prefix "TZ=". Please check environ(5) for TZ format.
The order of TZ setting is as follows.
1) if the environment variable TZ is present, it takes the
precedence.
2) if TZ is not present, then the value contained in
/etc/default/tz is used for default.
3) if /etc/default/tz is not set, then the default value is
equivalent to EST5EDT (Eastern Standard Time) of US.
Supersedes:
PHCO_13283 PHCO_13412 PHCO_14102 PHCO_14704 PHCO_15768 PHCO_16130
PHCO_16629 PHCO_17601 PHCO_18103 PHCO_18227 PHCO_19090 PHCO_19391
PHCO_19491 PHCO_19691 PHCO_20369 PHCO_20555 PHCO_20763 PHCO_20765
PHCO_22076 PHCO_22314 PHCO_22923 PHCO_23770 PHCO_24148 PHCO_24723
PHCO_25707
Equivalent Patches: None
Patch Package Size: 17830 KBytes
Installation Instructions:
Please review all instructions and the Hewlett-Packard
SupportLine User Guide or your Hewlett-Packard support terms
and conditions for precautions, scope of license,
restrictions, and, limitation of liability and warranties,
before installing this patch.
------------------------------------------------------------
1. Back up your system before installing a patch.
2. Login as root.
3. Copy the patch to the /tmp directory.
4. Move to the /tmp directory and unshar the patch:
cd /tmp
sh PHCO_25976
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHCO_25976.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHCO_25976. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
WARNING: If patch_save_files is false when a patch is installed,
the patch cannot be deinstalled. Please be careful
when using this feature.
For future reference, the contents of the PHCO_25976.text file is
available in the product readme:
swlist -l product -a readme -d
/tmp/PHCO_25976.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHCO_25976.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions:
If libc patches are installed without rebooting,
applications currently running which are linked shared