Analyze COMMAREA reads through native calls
ProprietaryProve a concrete short incoming length at a native CALL whose pinned callee reads the passed area on its proven entry path. Require one literal CALL and one BY REFERENCE argument. Limit the routine to one through eight letters, digits, hyphens or underscores with a leading letter or digit. Bind the complete caller and callee DISPLAY layouts by byte position and field type. Require exact source and COPY snapshots and explicit approval of normal-entry runtime binding and the same DISPLAY encoding. The callee must reach a supported character DISPLAY, MOVE or STRING read of its sole linkage parameter or a field or fixed slice within it. Permit at most 16 preceding default INITIALIZE, CONTINUE or simple EXIT statements. Initialization must affect only disjoint ordinary local storage and total at most 64 elementary writes. Branches, calls, incoming-area writes and other effects prevent this proof. MOVE reads are limited to the transferred prefix. STRING must have one incoming operand delimited by size and fit completely in a separate local character receiver. The caller uses the bounded COMMAREA entry-flow analysis. Calls remain barriers after their arrivals are observed. Unsupported interfaces, source, storage and effects cannot create a witness. Missing rows and missing findings do not establish safety. Report both source locations and conditional CWE-125 evidence. Do not change source or propose a guard. This does not establish deployed execution, allocation size, successful output, authorization or normal return.
io. moderne. mainframe. security. AnalyzeCommareaCallReadsRequired
Exact approved caller path.
Exact caller program ID. Retain quotes for literal IDs.
Lowercase SHA-256 of the complete approved UTF-8 caller without a byte order mark.
JSON object mapping every ordinary caller data COPY to its approved lowercase SHA-256.
Root-first dotted name of the incoming top-level LINKAGE area passed by reference.
Root-first dotted declaration name containing the actual incoming byte count at normal caller entry.
Smallest admitted entry count. Every integer through the maximum must be admitted.
Largest admitted entry count. Must be at most 32767.
One-based selected native CALL line.
Strict version 1 JSON with routine, sameDisplayEncoding and provider. The provider contains sourcePath, programName, sourceSha256, copybookSnapshots and recordName. See the recipe documentation for a complete example.
Provenance of the approved caller entry counts, area addressability and normal-entry runtime binding to the pinned native provider. The recipe records this input and does not infer deployment resolution.
mod run . --recipe= io. moderne. mainframe. security. AnalyzeCommareaCallReads \
-P sourcePath= caller. cbl \
-P programName= CALLER \
-P sourceSha256=0000000000000000000000000000000000000000000000000000000000000000 \
-P copybookSnapshots= '{}' \
-P commarea= DFHCOMMAREA \
-P receivedLength= RECEIVED \
-P minimumLength=0 \
-P maximumLength=16 \
-P callLine=15 \
-P providerContract= '{"version":1,"routine": "READPROV","sameDisplayEncoding": true,"provider": {"sourcePath": "provider. cbl","programName": "READPROV","sourceSha256": "0000000000000000000000000000000000000000000000000000000000000000","copybookSnapshots": {},"recordName": "IN-RECORD"}}' \
-P contractSource= 'Fictional native read binding'Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.