IBM Support

PH47577: USE OF HIGH-VALUES WITH FIXED BYTE-LENGTH UTF-8 ITEMS MAY PRODUCE INCORRECT RESULTS FOR MOVES/COMPARES

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Use of HIGH-VALUES with fixed byte-length UTF-8 items may
    produce incorrect results for moves/compares
    

Local fix

  • BYPASS/CIRCUMVENTION:
    None
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.3 and later      *
    *                 releases running programs                    *
    *                 that contain move and/or compare             *
    *                 operations involving the HIGH-VALUES         *
    *                 figurative constant and a fixed byte-length  *
    *                 UTF-8 data item with a byte length that is   *
    *                 not a multiple of 4 bytes.                   *
    ****************************************************************
    * PROBLEM DESCRIPTION: Incorrect result for move and compare   *
    *                      operations.                             *
    *                                                              *
    *                      When HIGH-VALUES is moved into a fixed  *
    *                      byte-length UTF-8 data item having a    *
    *                      length that is not a multiple of 4      *
    *                      bytes, the UTF-8 receiver will          *
    *                      not technically contain the highest     *
    *                      collating UTF-8 string possible of that *
    *                      byte-length, as any trailing            *
    *                      bytes that cannot contain the full      *
    *                      4-byte encoding of HIGH-VALUES will     *
    *                      be filled with UTF-8 spaces instead of  *
    *                      the highest collating 1, 2 or 3 byte    *
    *                      UTF-8 sequence.                         *
    *                                                              *
    *                      A similar problem occurs when           *
    *                      comparing HIGH-VALUES against a fixed   *
    *                      byte-length UTF-8 data item that        *
    *                      has a length that is not a multiple     *
    *                      of 4 bytes.  When comparing against     *
    *                      the final 1, 2 or 3 bytes in the        *
    *                      data item, UTF-8 spaces are used        *
    *                      instead of the highest collating        *
    *                      1, 2, or 3 byte UTF-8 sequence.         *
    ****************************************************************
    * RECOMMENDATION: Apply the PTF                                *
    ****************************************************************
    When a fixed byte-length UTF-8 data item has a length not evenly
    divisible by 4, the excess bytes at the end of the string
    were being filled with UTF-8 spaces instead of the largest
    UTF-8 value corresponding to that number of bytes.
    

Problem conclusion

  • The runtime and compiler have been updated to bring values in
    line with UTF-8 standards. Any remainder bytes of a fixed byte
    length UTF-8 item are set to the encoding of the highest
    possible code point appropriate for that number of remaining
    bytes.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH47577

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    630

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-06-28

  • Closed date

    2022-07-22

  • Last modified date

    2022-08-12

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

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

    PH48667

Modules/Macros

  • IGY8RWTU IGYCASMB IGYCCBE  IGYCCCRT IGYCCICS IGYCCSRV IGYCDGEN
    IGYCDIAG IGYCDMAP IGYCEN$0 IGYCEN$1 IGYCEN$2 IGYCEN$3 IGYCEN$4
    IGYCEN$5 IGYCEN$8 IGYCEN$D IGYCEN$R IGYCFGEN IGYCFREE IGYCINIT
    IGYCJA$0 IGYCJA$1 IGYCJA$2 IGYCJA$3 IGYCJA$4 IGYCJA$5 IGYCJA$8
    IGYCJA$D IGYCJA$R IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2
    IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOPI  IGYCOSCN IGYCPGEN IGYCRCTL
    IGYCRDPR IGYCRDSC IGYCREAL IGYCRWT  IGYCSCAN IGYCSIMD IGYCUE$0
    IGYCUE$1 IGYCUE$2 IGYCUE$3 IGYCUE$4 IGYCUE$5 IGYCUE$8 IGYCUE$D
    IGYCUE$R IGYCXREF IGYDRV   IGYEQCWI IGYMSGE  IGYMSGK  IGYMSGT
    IGYQCB   IGYQCBE  IGYQCBG  IGYQSPLT IGYTCARA IGYTSALE IGYZQEN6
    IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI81630

       UP22/07/29 P F207

  • R631 PSY UI81631

       UP22/07/29 P F207

  • R632 PSY UI81632

       UP22/07/29 P F207

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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"630","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023