IBM Support

PH37470: MQ Z/OS: DATA CONVERSION FOR RFH/RFH2 HEADERS NEEDS TO BETTER HANDLE AN MQGET WITH A SHORT BUFFERLENGTH

A fix is available

Subscribe

You can track all active APARs for this component.

 

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

  • R100 PSY UI79257

       UP22/03/11 P F203

  • R200 PSY UI79256

       UP22/03/11 P F203

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