PTF Cover Letter
PTF ( Program Temporary Fixes ) Cover letter
OSP-INCORROUT Multiple QlgReadlink() API problems
Pre/Co-Requisite PTF / Fix List
REQ LICENSED PTF/FIX LEVEL
TYPE PROGRAM RELEASE NUMBER MIN/MAX OPTION
---- -------- --------- ------- ------- ------
Application of this PTF may disable or render ineffective programs that
use system memory addresses not generated by the IBM translator,
including programs that circumvent control technology designed to limit
interactive capacity to purchased levels. This PTF may be a prerequisite
for future PTFs. By applying this PTF you authorize and agree to the
This PTF is subject to the terms of the license agreement which
accompanied, or was contained in, the Program for which you are obtaining
the PTF. You are not authorized to install or use the PTF except as part
of a Program for which you have a valid Proof of Entitlement.
SUBJECT TO ANY WARRANTIES WHICH CAN NOT BE EXCLUDED OR EXCEPT AS EXPLICITLY
AGREED TO IN THE APPLICABLE LICENSE AGREEMENT OR AN APPLICABLE SUPPORT
AGREEMENT, IBM MAKES NO WARRANTIES OR CONDITIONS EITHER EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON INFRINGEMENT,
REGARDING THE PTF.
The applicable license agreement may have been provided to you in printed
form and/or may be viewed using the Work with Software Agreements (WRKSFWAGR)
APAR Error Description / Circumvention
There are multiple problems with the "QlgReadlink()--Read Value
of Symbolic Link (using NLS-enabled path name)" API:
1) The API was used specifying an input path CCSID with a mixed
byte-length encoding scheme (for example, 5035). The function
completed successfully. The returned "Path type indicator" had a
value of 2, indicating a double-byte path name delimiter.
However, the actual path name delimiter was single-byte. This
made the returned path information unusable.
2) The API allows the caller to specify any character (other
than NULL) as the path name delimiter. The API unconditionally
returned that same character as the path name delimiter of the
output symbolic link contents. However, the actual path name
delimiter in the symbolic link contents is always the slash (/)
character. This could make the returned path unusable.
3) When zero is specified as the output buffer length, the API
returns a value that is intended to reflect the size of the
symbolic link contents. This value would normally be used to
allocate storage for a subsequent call to the API. However,
under some circumstances, specifying an input path CCSID that
was not single-byte or strictly double-byte would return a
result that was not large enough to hold the symbolic link
contents when converted to that CCSID. A notable example of such
a CCSID would be 1208 (UTF-8 encoding).
4) The size of the output buffer should not have a significant
effect on the API's performance, but the API response time
varied with the size of the output buffer, even though the
amount of returned data was the same.
5) Because symbolic link data is encoded in CCSID 1200,
requesting data in that CCSID should be much faster than other
CCSIDs since the contents should not have to be converted.
However, it is clear that data is being converted regardless of
the output CCSID.
6) The caller can specify an output buffer size up to
4,294,967,295 bytes. However, specifying values that large lead
to unpredictable results, regardless of the size of the symbolic
CORRECTION FOR APAR SE64772 :
The PTF corrects the reported problems in the following ways:
1) The returned "Path type indicator" will now be correct,
regardless of the CCSID.
2) The returned path name delimiter will always be the slash (/)
character in the requested CCSID.
3) The return value of the API will either reflect the actual
length of the returned path or will be a value large enough to
hold the contents of the returned path, regardless of the CCSID.
4) Response times for the API will not vary proportionately with
the size of the output buffer. The API will respond more quickly
with buffer sizes under 2048 than with buffers over 2048, but
beyond that performance will only vary with the size of the
returned symbolic link data.
5) The API will respond much more quickly when requesting the
symbolic link contents in CCSID 1200 than in other CCSIDs.
6) The API will correctly process all acceptable input values.
However, the API cannot return a symbolic link path greater than
approximately 8 million characters. This limitation has always
been in place, but was undocumented.
CIRCUMVENTION FOR APAR SE64772 :
If the PTF is applied as an immediate PTF, active jobs must
be ended and restarted to activate the fix in those jobs. If
the PTF is applied as a delayed PTF, no further action is
THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.
PTF/FIX NO(S). APAR TITLE LINE
|APAR Fixed..........................||View details for APAR SE64772|
|Superseded by:......................||View fix details for PTF SI67032|
|MRI Feature ........................||NONE|
27 May 2016