IBM Support

PH20254: For an edited display numeric picture MOVE source, a conversion may modify memory after the conversion temporary

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When the source of a MOVE is an edited display decimal and the
    target is computational, a run-time routine is used to convert
    the source to a simple display numeric intermediate result,
    prior to the final conversion to the target.
    
    If DECIMAL-POINT IS COMMA is in effect, (eg. PIC
    Z.ZZZ.ZZZ.ZZZ.ZZ9,99) the run-time routine will erroneously
    perform an AND X'CF' on memory after the intermediate result.
    
    Depending on what's thus modified, there may be no noticeable
    outcome, or some indefinite failure. In the reported case, the
    file status was not correctly updated.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V6 and later       *
    *                 releases compiling and running programs      *
    *                 that MOVE data from numeric-edited data      *
    *                 items to unsigned numeric USAGE DISPLAY      *
    *                 data items, where the source item PICTURE    *
    *                 string has simple insertion editing          *
    *                 symbols (for example, COMMAs).               *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: When the compiler generates code to     *
    *                      MOVE a NUMERIC-EDITED data item to a    *
    *                      NUMERIC data item, the generated        *
    *                      instruction sequence uses a temporary   *
    *                      variable for the COBOL Runtime routine  *
    *                      to use as receiver. This compiler       *
    *                      generated temporary is located on the   *
    *                      stack, along with other temporaries.    *
    *                      When the NUMERIC-EDITED data item's     *
    *                      PICTURE string has simple insertion     *
    *                      editing symbols (e.g. B 0 / ,), the     *
    *                      COBOL runtime routine may calculate the *
    *                      byte location of the sign nibble        *
    *                      incorrectly. The bytes immediately      *
    *                      following the temporary on the stack    *
    *                      could be corrupted.                     *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    The COBOL Runtime routine that performs MOVE processing
    incorrectly calculates the byte location of the byte that
    contains the sign nibble.
    
    COB0601T/K COB0602T/K COB0603T/K
    

Problem conclusion

  • The logic in the COBOL Runtime routine has been corrected.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH20254

  • Reported component name

    LE ENT COBOL LI

  • Reported component ID

    568819812

  • Reported release

    7A0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-12-12

  • Closed date

    2020-01-21

  • Last modified date

    2020-02-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI67483 PH21259

Modules/Macros

  • IGZCEV4  IGZLLIBV IGZXAPI  IGZXCDA  IGZXDMR
    IGZXD24  IGZXLPIO IGZXLPKA IGZXLPKB IGZXLPKC IGZXLPKD IGZXLPKE
    IGZXLPKF IGZXLPKG IGZXPK2
    

Fix information

  • Fixed component name

    LE ENT COBOL LI

  • Fixed component ID

    568819812

Applicable component levels

  • R7A0 PSY UI67483

       UP20/01/24 P F001

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.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCVR7X","label":"Runtime"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
16 May 2020