IBM Support

PH21709: COBOL V5+ PROGRAM CALLING C/C++ PROGRAM INDIRECTLY CAN RESULT IN CRENT(CAA+X'1F4')=0, CAUSING ABEND0C4 IN COBOL V5+ PROGRAM

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When a COBOL V5+ programs calls a C/C++ programs indirectly
    (e.g. via assembler code or an IMS COBOL BMP/MPP),
    it may result in CEECAACRENT (CAA + x'1F4') being reset to zero.
    The current or consequent calls to a COBOL program might abend.
    
    The problem doesn't occur if the C/C++ programs are called
    directly via COBOL dynamic, static or DLL calls.
    
    The COBOL Runtime library will be improved to tolerate the case
    and try to restore CEECAACRENT to a correct address.
    

Local fix

  • Include CEESG003 in the bind (linkage) step.  This ensures that
    both the COBOL and C/C++ members are initialized together at
    the beginning of the enclave.
    
    For example:
    
    //LKED.SYSLIN  ...
      ...
      INCLUDE SYSLIB(CEESG003)
      ...
    //SYSLIB DD DSN=CEE.SCEELKED
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V5 and later       *
    *                 releases compiling programs with the RENT    *
    *                 option and calling C/C++ programs            *
    *                 indirectly.                                  *
    ****************************************************************
    * PROBLEM DESCRIPTION: The COBOL program terminates with 0C4   *
    *                      abend, caused by the field CEECAACENT   *
    *                      being zero. CEECAACENT is the field at  *
    *                      offset x'1F4' of the LE CAA control     *
    *                      block (CAA + x'1F4'). This field        *
    *                      should not be zero when running         *
    *                      programs compiled with the RENT option. *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    When COBOL V5 and later programs call C/C++ programs indirectly
    (e.g. via assembler code or other non-COBOL LE high-level
    language programs), runtime library processing in the mix
    language environment may reset the CEECAACENT field
    (CAA+x'1F4'). This may cause the current COBOL program, or
    subsequent programs, to abend.
    
    The problem doesn't occur if the C/C++ program is called
    directly using COBOL dynamic, static or DLL call statements.
    
    COB0501T/K COB0502T/K COB0601T/K COB0602T/K COB0603T/K
    

Problem conclusion

  • COBOL Runtime library has been enhanced to handle this case and
    restore CEECAARENT to the correct address.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH21709

  • Reported component name

    LE ENT COBOL LI

  • Reported component ID

    568819812

  • Reported release

    7C0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-02-03

  • Closed date

    2020-02-11

  • Last modified date

    2021-07-23

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

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

    UI67801 UI67819 UI67822

Modules/Macros

  • IGZCEV4  IGZLLIBV IGZXAPI  IGZXCDA  IGZXD24  IGZXDMR  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 UI67801

       UP20/02/22 P F002

  • R7B0 PSY UI67819

       UP20/02/22 P F002

  • R7C0 PSY UI67822

       UP20/02/22 P F002

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":"LOB35","label":"Mainframe SW"},"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":"7C0"}]

Document Information

Modified date:
24 July 2021