Find COBOL COMMAREA STRING read lengths
ProprietaryMark proven STRING reads beyond the received COMMAREA under an explicit entry contract. Accept one incoming character field, DISPLAY group or fixed slice among at most 16 operands. Require DELIMITED BY SIZE and a complete transfer fitting a separate ordinary PIC X receiver of at most 256 bytes. Other operands must be bounded ordinary character fields or alphanumeric literals. Use the source offset and full read length to establish a concrete short entry count. Follow the existing bounded received-length guards and direct paragraph flow. Earlier short reads retain unknown continuation paths. Unknown effects cannot create a witness. Pointers, overflow clauses, delimiter searches, multiple incoming operands, aliases and incomplete source remain unsupported. The proof does not establish sensitive-data exposure, caller reachability or successful later processing. Missing findings do not establish safety. Do not change executable source or invent a failure path.
io. moderne. mainframe. security. FindCommareaStringLengthsRequired
Exact outermost-first dotted declaration name for the incoming COMMAREA. The proof accepts a top-level LINKAGE PIC X item or a record of ordinary PIC X and unsigned DISPLAY PIC 9 integer fields.
Exact outermost-first dotted declaration name containing the actual incoming byte count at normal program entry.
Smallest incoming byte count admitted by the entry contract. Must be between zero and the maximum entry length.
Largest incoming byte count admitted by the entry contract. Must be at most 32767. Every integer in the configured interval must be admitted.
Provenance of the approved entry contract. It binds the area and length field at normal entry and defines the admitted lengths. The length field must be disjoint from the area and local storage. The contract is recorded and is not fetched or inferred from names.
Optional
Exact repository-relative source path to check. Every source is checked when omitted.
Program ID to check. Retain quotes for literal IDs. Their contents match case exactly. Every program is checked when omitted.
mod run . --recipe= io. moderne. mainframe. security. FindCommareaStringLengths \
-P commarea= DFHCOMMAREA \
-P receivedLength= DFHEIBLK. EIBCALEN \
-P minimumLength=0 \
-P maximumLength=32767 \
-P contractSource= mainframe-fixtures/ README. mdInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.