IBM Support

PH48667: 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.         *
    ****************************************************************
    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

    PH48667

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    640

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-08-12

  • Closed date

    2022-08-18

  • Last modified date

    2022-11-01

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

    PH47577

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

Modules/Macros

  • IGY8RWTU IGYADXIT 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 IGYCJBLD IGYCJBLS IGYCJDM1 IGYCJDM2
    IGYCJDM3 IGYCJDM4 IGYCJDM5 IGYCJDM6 IGYCJDMB IGYCJDMR IGYCJGEN
    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 IGYISMKD IGYMSGE  IGYMSGK  IGYMSGT  IGYMSGXT
    IGYQC    IGYQCB   IGYQCBE  IGYQCBG  IGYQSPLT IGYWACPT IGYWALOC
    IGYWAPLY IGYWC    IGYWCL   IGYWCLG  IGYWDDEF IGYWDOPT IGYWIVP1
    IGYWIVP2 IGYWRECV IGYWRWD  IGYWSMPE IGYWUOPT IGYWZFS  IGYZQEN6
    IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R640 PSY UP

       A

  • R641 PSY UP

       A

  • R642 PSY UI82932

       UP22/10/28 P F210

  • R64H PSY UP

       A

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":"640","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023