Analyze local COBOL exit paths
ProprietaryInspect direct GO TO paths that end in GOBACK or plain CICS RETURN before leaving the target paragraph. Resolve unique paragraph names and explicit IN or OF section qualifiers. Follow unconditional tail jumps through at most 16 paragraphs. Inspect at most 64 statements including the initial jump. Permit simple EXIT, CONTINUE, plain literal DISPLAY and bounded literal MOVE stores before the terminal statement. Stores require complete ordinary source and unaliased WORKING-STORAGE or LOCAL-STORAGE scalar fields. Limit stores to 16 plain targets and ASCII literals of at most 256 characters or representable integer literals of at most 18 digits. Character targets must contain at most 32767 bytes. Literal MOVE stores to groups, slices, tables or interfaces remain unsupported. Uncertain conversions remain unsupported. Validate plain resolved data copies. Also permit one ordinary BEGIN and END DECLARE SECTION pair with validated standalone SQLCODE and SQLSTATE declarations. Also permit a unique ordinary SQLCA include after validating its complete standard layout and parser-supplied provenance. Custom SQLCA includes, copied directives and other preprocessing prevent the new store proof. Reject cycles, computed jumps, section targets, paragraph fallthrough and other statement effects. Any ALTER, altered GO TO, declarative procedure, incomplete source or nonordinary procedure source prevents the proof. Explicit compiler options, debugging mode and copied or nonordinary environment declarations in the current or enclosing program also prevent the proof. Report the first barrier, the terminal source line and inspection counts. A supported path reaches its stated terminal if the inspected jump executes. It does not establish entry reachability or an approved failure policy. This supporting analysis produces no vulnerability findings or source changes. A jump path may also end in exactly EXEC CICS RETURN END-EXEC with no options. Validate the complete embedded command and retain the existing path budgets and source barriers. This exits the current CICS logical level. It does not establish that the whole task terminates. Commands with response, routing, data-passing or activity options remain outside this proof. Preserve the original return command and report its actual source line. Also permit bounded default INITIALIZE on these terminal jump paths. Validate at most 16 local fields or groups and 64 elementary writes. Require complete ordinary unaliased storage. Integer defaults are zero and PIC X defaults are spaces within 256 characters per field. VALUE and FILLER phrases, replacement phrases, FILLER members, tables and unsupported storage prevent this proof. An explicit TO DEFAULT retains default behavior. Preserve every initialization and message before the existing terminal.
io. moderne. mainframe. security. AnalyzeLocalExitPathsmod run . --recipe= io. moderne. mainframe. security. AnalyzeLocalExitPathsInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.