A fix is available
APAR status
Closed as program error.
Error description
During data conversion, when MQMD.Format is found to have "MQHRF" (MQFMT_RF_HEADER) or "MQHRF2" (MQFMT_RF_HEADER_2), CSQARFH is called. If the BufferLength specified on the MQGET is shorter than the length of the header, data conversion fails. Normally, this situation is handled, and the application receives the expected reason code 2079 MQRC_TRUNCATED_MSG_ACCEPTED. If the header offset MQ is attempting to convert falls into a storage page with a different key or a page that has been freed, an ABEND0C4 will occur in CSQARFH. CSQARFH should be updated to to handle small but non-zero buffer lengths.
Local fix
If the application is using a small BufferLength because it only wants to find the length of the message and does not want the data yet, specify a BufferLength of 0 for the MQGET. That value is already handled explicitly and will result in circumvention of the problem in CSQARFH plus increased performance, because the conversion of the buffer will be skipped completely.
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM MQ for z/OS Version 9 * * Release 1 Modification 0 and * * Release 2 Modification 0. * **************************************************************** * PROBLEM DESCRIPTION: During conversion of an RFH1 or RFH2 * * header, if the message buffer is too * * short to contain the entire header an * * abend 0C4 or unexpected attempt to load * * module 'MQHRF' or 'MQHRF2' can occur. * * The error only occurs in environments * * that use the 31bit MQ conversion path * * (for example: CICS, IMS). * **************************************************************** While converting an RFH header, CSQARFH attempts to determine the length of the variable NameValue data in the header. When the buffer is not long enough, a reference can be made to storage beyond the end of the buffer leading to an abend 0C4 if this storage cannot be accessed, or unexpected behaviour depending on the contents of the storage.
Problem conclusion
CSQARFH is changed to correctly determine when the buffer is too small to contain the necessary fields.
Temporary fix
Comments
APAR Information
APAR number
PH37470
Reported component name
IBM MQ Z/OS V9
Reported component ID
5655MQ900
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2021-05-21
Closed date
2022-02-10
Last modified date
2022-04-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI79256 UI79257
Modules/Macros
CSQARFH
Fix information
Fixed component name
IBM MQ Z/OS V9
Fixed component ID
5655MQ900
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"100"}]
Document Information
Modified date:
02 April 2022