IBM Support

SI60951 - OSP-INCORROUT Multiple QlgReadlink() API problems

PTF Cover Letter


PTF ( Program Temporary Fixes ) Cover letter


Order this fix

Abstract

OSP-INCORROUT Multiple QlgReadlink() API problems


Pre/Co-Requisite PTF / Fix List

REQ  LICENSED           PTF/FIX  LEVEL

TYPE PROGRAM  RELEASE   NUMBER   MIN/MAX  OPTION
---- -------- --------- -------  -------  ------
NONE



NOTICE:
-------
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
foregoing.

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)
CL command.





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
link contents.

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 :
--------------------------------
None


Activation Instructions


None.




Special Instructions


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
necessary.


Default Instructions

THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.



Supersedes

PTF/FIX NO(S).  APAR TITLE LINE
--------------  ------------------------------------------------------------
     NONE

Summary Information

System..............................i
Models..............................
Release.............................V7R3M0
Licensed Program...............5770SS1
APAR Fixed..........................View details for APAR SE64772
Superseded by:......................View fix details for PTF SI67032
Recompile...........................N
Library.............................QSYS
MRI Feature ........................NONE
Cum Level...........................C6299730


System i Support

IBM disclaims all warranties, whether express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright © 1996,1997,1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult the Terms of use link for trademark information.

[{"Type":"MASTER","Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.3.0"},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG15V","label":"PTF Cover Letters - OS\/400 General"},"Component":"","ARM Category":[],"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"V7R3M0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
27 May 2016