A fix is available
APAR status
Closed as program error.
Error description
When a COBOL program is entered into the CEEPIPI table under different aliases, and when one of those aliases is deleted, a subsequent call to the COBOL program with the secondary alias leads to an abend.
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL 5 and later * * releases running aliased programs * * with the CEEPIPI interface. * * * * Users of IMS or tools that submit * * the IMS UPDATE PGM(REFRESH) command and * * run transactions using aliased * * COBOL 5/6 programs through the CEEPIPI * * interface. * **************************************************************** * PROBLEM DESCRIPTION: An application (transaction) is * * terminated with an abend code or * * misbehaves because an unexpected * * program or code flow is executed. * * * * When a system dump is taken and * * the CEEPIPI table entries are inspected * * using IPCS via VERBEXIT LEDATA 'ALL', * * identical entry points and function * * pointers are found across distinct * * table entries. * * * * For example, using IPCS, the following * * CEEPIPI table entry information * * shows that programs X1 and X2 share * * the same Entry Point (BCBF7000) and * * function pointer (BCF05048), indicating * * aliased programs: * * * * ... * * CEEPIPI Table Index 1 * * Routine Name = X1 * * Routine Type = COBOLV5+ * * Routine Entry Point = BCBF7000 * * Routine Function Pointer = BCF05048 * * * * CEEPIPI Table Index 2 * * Routine Name = X2 * * Routine Type = COBOLV5+ * * Routine Entry Point = BCBF7000 * * Routine Function Pointer = BCF05048 * * ... * **************************************************************** * RECOMMENDATION: Install the provided PTF. * **************************************************************** The problem can be reproduced as follows: 1) Create a COBOL 5/6 release program, namely X1. 2) Create another program (X2) aliased to X1 using the Binder control statement at link-edit: ... ALIAS X2 NAME X1 ... 3) Add X1 and X2 to the CEEPIPI table (add_entry). 4) Delete X2 (delete_entry). 5) Call X1 (call_sub). In step 3, when X1 and X2 are added to the table, they share the same function pointer, which refers to an internal structure describing the entry point and attributes of the program. In step 4, the deletion of X2 frees the internal structure to which the function pointer refers. In step 5, calling X1 can result in an abend or execute an unexpected program because the function pointer still points to the freed internal structure, which may have been overwritten with unpredictable data by another process. COB0501T/K COB0502T/K COB0601T/K COB0602T/K COB0603T/K COB0604T/K COB0605T/K
Problem conclusion
The COBOL Runtime logic has been fixed. In the scenario where X1 and X2 are aliased and X1 is called after the deletion of X2 within CEEPIPI, the call to X1 completes successfully. The COBOL Runtime now detects requests to create or delete a COBOL function pointer via the LE Event Code 40 within the CEEPIPI environment. The COBOL Runtime maintains a usage count for these requests using a newly introduced internal counter. The function pointer is retained until the counter reaches 0 and all other internal criteria are satisfied. Under the new logic, the COBOL Runtime also evaluates the entry point address to detect aliases, as a target program and its aliases share the same entry point address. The updated counter and per-module metadata are retained within COBOL Runtime internal control blocks.
Temporary fix
Comments
APAR Information
APAR number
PH71932
Reported component name
LE ENT COBOL LI
Reported component ID
568819812
Reported release
7F0
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2026-06-24
Closed date
2026-09-29
Last modified date
2026-10-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UO09745 UO09746 UO09747
Modules/Macros
IGZBXITA IGZCCCHK IGZCER4 IGZCEV4 IGZCFREM IGZCGETI IGZCGETM IGZCJNI2 IGZCLOAD IGZGLUE IGZLLIBV IGZQR004 IGZRIDT IGZRTMON IGZSETRT IGZTRUE IGZXAPI IGZXCA31 IGZXCDA IGZXD24 IGZXDMR IGZXJNI2 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
R7D0 PSY UO09745
UP26/10/03 I 1000
R7E0 PSY UO09746
UP26/10/03 I 1000
R7F0 PSY UO09747
UP26/10/03 I 1000
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":"BU048","label":"IBM Software"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7F0","Line of Business":{"code":"LOB70","label":"Z TPS"}}]
Document Information
Modified date:
03 October 2026