ISREDIT MACRO /* CAAM0507 EDIT MACRO */ /* 03/01/2006 C. STERN Created from CAAM0007 for PDIs 250, 280, 330 */ /* 06/06/2006 C. STERN Update ERROR ROUTINE. /* 10/20/2006 C. STERN Modify ZUSSA050 per CF/FSO. /* With "I. CLASSMAP" /* 11/01/2006 C. STERN Add ZUSSA053 per CF/FSO. /* 12/22/2006 C. FENTON Removed "I. CLASSMAP for ZUSSA050. /* 12/22/2006 C. FENTON Removed addition lines on Manual Reviews. /* 12/22/2006 C. FENTON ACF0550 removed. /* 12/22/2006 C. FENTON Modification made for false findings on /* GSO OPTION not being defined. Finding should have been /* "Not a Finding". /* 12/22/2006 C. FENTON Modification to remove additional PSWD entries /* that are not part of the STIG analysis. /* 01/05/2007 C. FENTON Modification ACF0360 to change analysis and to /* make it a manual review if issues are found. /* 05/17/2007 C. FENTON Changes made to reflect Ver 9.0. /* 07/11/2007 CL.FENTON Changed evaluation of ACF0270 and /* ZUSSA050 to review CLASS. /* 07/11/2007 CL.FENTON Removed logic for ACP0300, being /* performed by CAAM0506. /* 08/07/2007 CL.FENTON Corrected ACF0270 Classified settings /* check. /* 05/05/2008 CL.FENTON Changed evaluation of ACPVERS to execute /* CACC1000 ACPCOMP to compare ACPVERS with var. /* 07/16/2009 CL.FENTON Removed evaluation of ACPVERS and analysis /* cleanup. /* 09/18/2009 CL.FENTON Chgd ACF0360 Manual Review for only when /* MODE(RULE... is specified. /* 04/07/2010 CL.FENTON Chgd ACF0380 PASSLMT from 2 to 3. /* 05/18/2010 CL.FENTON Removed several write statements. /* 06/29/2010 CL.FENTON Added DECOMP(AUDIT) and DECOMP(SECURITY) to /* ACF0430. /* 08/03/2010 CL.Fenton added additional fields and cleanup for ACF0390. /* 03/09/2011 CL.Fenton chged PASSLMT to 1-2 for ACF0390. /* 09/12/2011 CL.Fenton chged PASSLMT to 1-3 for ACF0390. /* 09/19/2011 CL.Fenton chged ACF0370 to require TEMPDSN. /* 12/23/2011 CL.FENTON Removed VOLRULE/NOVOLRULE from requirements for /* ACF0430, CSD-AR003102861. /* 02/08/2012 CL.FENTON Added removal of additional entries for /* ACF0370, GSO OPT, TEMPDSN retained, CSD-AR003213039. /* 03/06/2013 CL.Fenton split ACF0370 into checking for the CAT I and /* ACF0375 a CAT II for the remaining GSO OPTS, STS-000812. /* ADD ACF0400 to evaluate GSO PWPHRASE option settings, /* CSD-AR003262504. /* 08/19/2013 CL.FENTON Chgd ACF0400 evaluation of REPCHAR and /* WARNDAYS and IF statement, STS-003764. /* 09/24/2013 CL.FENTON Chgd ACF0270 to require AUTOERAS settings /* are specified for both class and unclass, STS-003180 /* 03/06/2014 CL.FENTON Chgd ACF0500 to remove NOFSRETAIN requirement /* and clean up other non required entries, STS-004473 /* and STS-005146. /* 12/11/2014 CL.FENTON Chgd ACF0375 INFOLIST to allow INFOLIST(AUDIT), /* INFOLIST(SECURITY) and INFOLIST(), STS-007733. /* 12/15/2014 CL.FENTON Added CSLIDEXT and NOCSLIDEXT as valid /* requirements, STS-008394. /* 01/30/2015 CL.Fenton Chgd ZUSSA053 to specify Not Applicable when /* CHOWNRES or NOCHOWNRES are not specified in the GSO /* UNIXOPTS, STS-006695. /* 02/09/2015 CL.Fenton Chgd ACF0400 to evaluate MINLEN=15 for GSO /* PWPHRASE record, STS-008965. /* 02/09/2015 CL.Fenton Chgd ACF0390 to check for special characters, /* STS-004529. /* 02/09/2015 CL.Fenton Chgd ACF0400 to check for special characters and /* removed LID and REPCHAR requirements, STS-008965. /* 07/31/2015 CL.Fenton Chgd ACF0430 to remove VSAMFAIL or NOVSAMFAIL /* from finding details, STS-011132. /* 11/20/2015 CL.Fenton Chgd ACF0390 to remove PSWDENCT(AES1) and /* PSWDENCT(AES2) from finding details until encryption /* requirement becomes effective. /* 01/27/2016 CL.Fenton Added ACF0395 to evaluate value of PSWDENCT /* and for version 16.0 ONEPWALG. Evaluation of encryption /* requirements, STS-013213. /* 04/18/2016 CL.Fenton Chgs ACF0375 to remove evaluation of NOCACHE /* from GSO OPTS record, STS-013816. /* 04/18/2016 CL.Fenton Chgs ACF0500 to remove evaluation of PROC(IKJACCNT) /* from GSO TSO record, STS-013817. /* 07/18/2017 CL.Fenton Chgd ZUSSA050 automation evaluation for z/OS /* 2.1 and above, STS-017962. /* 11/03/2017 CL.Fenton Chgd ACF0390 and ACF0400 evaluation that 0 is not /* to be used for WRNDAYS and WARNDAYS as a finding, STS-018505. /* 05/23/2018 CL.Fenton Removed Manual Review from ACF0250. /* 05/23/2018 CL.Fenton Added "Not Reviewed" to ACF0270, ACF0375, and /* ACF0380 for vuls that require additional analysis and /* ACF0370 for MODE(RULE,...) that requires additional /* analysis, STS-019713. /* 09/28/2018 CL.Fenton Chgd "Not Reviewed" for ACF0310 from .ZFIRST /* to .ZLAST, STS-020817. /* 01/30/2019 CL.Fenton Chgd ACF0390 and ACF0400 evaluation that all /* special characters be specified in PSWDPLST and /* SPECLIST, STS-021085. /* 05/14/2021 CL.Fenton Chgd ACF0330 to correct 920 return_code. /* 06/29/2021 CL Fenton Chgs to remove ACF0260, ACF0410, ACF0490, /* ACF0520, ZUSSA050, and ZUSSA053, STS-026845. /* 11/26/2021 CL Fenton Added entries to TABLE for PSWD vuls /* ACF2-ES-000430, ACF2-ES-000590, ACF2-ES-000820, /* ACF2-ES-000840, ACF2-ES-000860, ACF2-ES-000870, /* ACF2-ES-000890, ACF2-ES-000900, ACF2-ES-000850, /* ACF2-ES-000910, and ACF2-ES-000990, STS-027409, /* STS-027410, STS-027411, STS-027412, STS-027413, /* STS-027414, STS-027415, STS-027416, STS-027417, /* STS-027418, and STS-027419. /* 06/23/2022 CL Fenton Chgd OPTLINE to add '@' for PSWDPLST in /* ACF039C, STS-028636. /* 08/31/2023 CL Fenton Added automation for SAFDEF vul /* ACF2-SM-000040 for ZSMSA006, SCTASK0045234. SET PGMNAME = &STR(CAAM0507 08/31/23) NGLOBAL PGMNAME RETURN_CODE /* *************************************** */ /* THIS EDIT MACRO PROVIDES THE FINDING */ /* DETAILS FOR ACF2 CONTROL OPTIONS */ /* *************************************** */ /* *************************************** */ /* VARIABLES ARE PASSED TO THIS MACRO */ /* CONSLIST */ /* COMLIST */ /* SYMLIST */ /* TERMMSGS */ /* *************************************** */ SET RETURN_CODE = 0 /* ERROR ROUTINE */ ERROR DO SET RETURN_CODE = &LASTCC /* save LAST ERROR CODE */ IF &LASTCC GE 16 THEN + WRITE &PGMNAME LASTCC = &LASTCC &ZERRLM RETURN END ISPEXEC CONTROL NONDISPL ENTER ISPEXEC CONTROL ERRORS RETURN /* GET VARIABLES FROM POOL */ ISPEXEC VGET ( - CONSLIST - COMLIST - FINDRC - SYMLIST - TERMMSGS - CHK - OPT - OPTDEL - OPTLINE - ACPVERS - ) ASIS IF &RETURN_CODE NE 0 THEN - SET AM07VGE = &RETURN_CODE ELSE - SET AM07VGE = 0 /* *************************************** */ /* TURN ON MESSAGES */ /* *************************************** */ CAAM0007_MESSAGE_HOUSEKEEPING: - SET SYSSYMLIST = &SYMLIST /* CONTROL SYMLIST/NOSYMLIST */ SET SYSCONLIST = &CONSLIST /* CONTROL CONLIST/NOCONLIST */ SET SYSLIST = &COMLIST /* CONTROL LIST/NOLIST */ SET SYSMSG = &TERMMSGS /* CONTROL MSG/NOMSG */ CONTROL ASIS IF &NRSTR(&OPTDEL) NE &STR( ) THEN DO ISREDIT DELETE .ZF .ZL SET OPTDEL = ISPEXEC VPUT ( + OPTDEL + ) ASIS END /* *************************************** */ /* MAIN PROCESS */ /* *************************************** */ SET DFTGROUP_SWITCH = N SET DFTUSER_SWITCH = N SET LP = &STR(( SET RP = ) SET ROW = 0 SET SPC = &STR( ) ISREDIT CAPS = OFF ISREDIT STATS = OFF ISREDIT (ROW) = LINENUM .ZLAST ISREDIT (PDINUM) = MEMBER SET X = &SYSINDEX(&STR(/ ),&STR(&OPT)) SET XL = &LENGTH(&STR(&OPT)) IF &X GT 0 THEN DO SET RETURN_CODE = 0 ISREDIT FIND '&SUBSTR(&X:&XL,&STR(&OPT)) ' ALL SET FOPT_RC = &RETURN_CODE END SET RETURN_CODE = 0 ISREDIT FIND 'Not a Finding' ALL SET NF_RC = &RETURN_CODE SET RETURN_CODE = 0 ISREDIT FIND 'Manual Review.' ALL SET MR_RC = &RETURN_CODE SET RETURN_CODE = 0 ISREDIT FIND 'Not Reviewed' ALL SET NR_RC = &RETURN_CODE SET RETURN_CODE = 0 ISREDIT FIND 'Not Applicable' ALL SET NA_RC = &RETURN_CODE SET RETURN_CODE = 0 ISREDIT FIND 'not defined:' ALL SET ND_RC = &RETURN_CODE SET RETURN_CODE = 0 ISREDIT FIND 'set improperly:' ALL SET SI_RC = &RETURN_CODE SET RETURN_CODE = 0 IF &CHK EQ &STR( ) AND + &ROW EQ 0 AND + &STR(&PDINUM) EQ &STR(ACF0250) THEN + GOTO ACF0250 IF &NRSTR(&OPTLINE) NE &STR( ) THEN DO SET OPTLINEX = &NRSTR( &OPTLINE @ ) DO UNTIL &SYSINDEX(&STR(@),&NRSTR(&OPTLINEX)) EQ 0 SET Y = &LENGTH(&NRSTR(&OPTLINEX)) SET X = &SYSINDEX(&STR(@),&NRSTR(&OPTLINEX)) SET OPTLINEX = &STR(&SUBSTR(1:&X-1,&NRSTR(&OPTLINEX)) + &SUBSTR(&X+1:&Y,&NRSTR(&OPTLINEX)) ) END END IF &CHK EQ &STR( ) AND + &FINDRC NE 0 THEN DO IF &ROW EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SET AC = &STR( &OPT is not defined.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) GOTO END_EDIT END SET OPTL = &LENGTH(&NRSTR(&OPTLINE)) ACF0250: + IF &PDINUM NE ACF0250 THEN + GOTO BYPASS_ACF0250 IF &FOPT_RC EQ 0 THEN + GOTO END_EDIT IF &FINDRC EQ 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Not Reviewed' SET AC = &STR(The following GSO record value(s) is (are) set + improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END ELSE DO IF &NR_RC GT 0 AND + &NF_RC GT 0 THEN DO SET AC = &STR(Not a Finding.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AC = &STR(No Application Definitions exist on this system.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) GOTO END_EDIT END END IF &FOPT_RC EQ &STR( ) THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AC = &STR(Note: The APPLDEF record is optional. Use of this + record will be justified in writing with supporting + documentation.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) END BYPASS_ACF0250: + IF &PDINUM NE ACF0270 THEN + GOTO BYPASS_ACF0270 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT ISPEXEC VGET ( + CLASS + ) ASIS IF &SYSINDEX(&STR( NON-VSAM ),&NRSTR(&OPTLINEX)) GT 0 AND + &SYSINDEX(&STR( VOLS(-) ),&NRSTR(&OPTLINEX)) GT 0 AND + &SYSINDEX(&STR( VSAM ),&NRSTR(&OPTLINEX)) GT 0 THEN + GOTO BYPASS_ACF0270 IF &NF_RC EQ 0 THEN + ISREDIT DELETE .ZF .ZL IF &NR_RC GT 0 AND + &ROW EQ 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Not Reviewed' SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SYSCALL WRITE_OPT OPT OPTLINE SYSCALL DELETE_STRING P1('NOERASEALL') SYSCALL DELETE_STRING P1('ERASEALL') SYSCALL DELETE_STRING P1('NON-VSAM') SYSCALL DELETE_STRING P1('PROCESS(') SYSCALL DELETE_STRING P1('SECLEVEL') SYSCALL DELETE_STRING P1('NOSECLEVEL') SYSCALL DELETE_STRING P1('SECLVL(') SYSCALL DELETE_STRING P1('VSAM') SYSCALL DELETE_STRING P1('VOLS(-)') GOTO END_EDIT BYPASS_ACF0270: + IF &PDINUM NE ACF0280 THEN + GOTO BYPASS_ACF0280 SET LP = &STR(( SET RP = ) IF &FOPT_RC EQ 0 THEN + GOTO END_EDIT IF &SYSINDEX(&STR( TIME&LP.00:00&RP ),&NRSTR(&OPTLINEX)) + GT 0 THEN DO IF &NF_RC GT 0 AND + &ROW EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END IF &FOPT_RC EQ &STR( ) THEN + IF &NF_RC EQ 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AC = &STR(Site defined start time allowed.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) GOTO END_EDIT END ELSE DO ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AC = &STR(DISA recommendation: CHANGE BACKUP TIME(xx:xx) + Specify a non-zero value for TIME option.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) GOTO END_EDIT END BYPASS_ACF0280: + IF &PDINUM NE ACF0310 THEN + GOTO BYPASS_ACF0310 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET OPTL = &LENGTH(&OPTLINE) SET OPTTEST = &SUBSTR(1:&OPTL-1,&NRSTR(&OPTLINE)) SET OPTL = &LENGTH(&OPTTEST)+10 SET X = &SYSINDEX(&STR(DSNPOST),&STR(&OPTTEST)) IF &X GT 0 THEN + SET Y = &SYSINDEX(&RP,&STR(&OPTTEST),&X) + 2 IF &X GT 1 THEN + SET OPTTEST = &STR(&SUBSTR(1:&X-1,&STR(&OPTTEST))+ &SUBSTR(&Y:&OPTL,&STR(&OPTTEST&SPC&SPC))) ELSE + IF &X EQ 1 THEN + SET OPTTEST = &STR(&SUBSTR(&Y:&OPTL,&STR(&OPTTEST&SPC))&SPC) SET OPTL = &LENGTH(&STR(&OPTTEST))+10 SET X = &SYSINDEX(&STR(SEVPOST(SEVPST01)),&STR(&OPTTEST)) IF &X GT 1 THEN + SET OPTTEST = &STR(&SUBSTR(1:&X-1,&STR(&OPTTEST))+ &SUBSTR(&X+18:&OPTL,&STR(&OPTTEST&SPC&SPC))) ELSE + IF &X EQ 1 THEN + SET OPTTEST = &STR(&SUBSTR(19:&OPTL,&STR(&OPTTEST&SPC))&SPC) SET OPTL = &LENGTH(&STR(&OPTTEST))+10 SET X = &SYSINDEX(&STR(SEVPRE(SEVPRE01)),&STR(&OPTTEST)) IF &X GT 1 THEN + SET OPTTEST = &STR(&SUBSTR(1:&X-1,&STR(&OPTTEST))+ &SUBSTR(&X+17:&OPTL,&STR(&OPTTEST&SPC&SPC))) ELSE + IF &X EQ 1 THEN + SET OPTTEST = &STR(&SUBSTR(18:&OPTL,&STR(&OPTTEST&SPC))&SPC) SET OPTL = &LENGTH(&OPTLINE) IF (&SYSINDEX(&STR( SEVPOST(SEVPST01) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( SEVPRE(SEVPRE01) ),+ &NRSTR(&OPTLINEX)) EQ 0) OR + &STR(&OPTTEST) NE &STR( ) THEN DO IF &NF_RC EQ 0 THEN + ISREDIT DELETE .ZF .ZL IF &NR_RC GT 0 THEN DO ISREDIT LINE_BEFORE .ZLAST = DATALINE 'Not Reviewed' SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SET OPTTEST = &NRSTR(&OPTTEST)@ SYSCALL WRITE_OPT OPT OPTTEST GOTO END_EDIT END BYPASS_ACF0310: + IF &PDINUM NE ACF0330 THEN + GOTO BYPASS_ACF0330 IF &FOPT_RC EQ 0 THEN + GOTO END_EDIT IF &SYSINDEX(&STR( LIBRARY&LP.SYS1.LINKLIB&RP ),+ &NRSTR(&OPTLINEX)) GT 0 AND + &MR_RC EQ 0 THEN + GOTO END_EDIT IF &NR_RC EQ 0 AND + &FOPT_RC EQ &STR( ) THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AC = &STR(DISA recommendation: Change Rep/Del LINKLST + LIBRARY(xxxx.xxx.xxx xxxx.xxx.xxx).) SET AC = &STR(&AC Ensure only trusted system data sets are + listed.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) GOTO END_EDIT END IF &SYSINDEX(&STR( LIBRARY&LP.SYS1.LINKLIB&RP ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &NRSTR(&OPTLINEX) NE &STR( ) THEN DO IF &NF_RC EQ 0 AND + &NRSTR(&OPTLINE) NE &STR( ) THEN + ISREDIT DELETE .ZF .ZL IF &NR_RC GT 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Not Reviewed' SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF0330: + IF &PDINUM NE ACF0360 THEN + GOTO BYPASS_ACF0360 IF &FOPT_RC EQ 0 THEN + GOTO END_EDIT IF &FOPT_RC NE &STR( ) AND + (&SYSINDEX(&STR( DFTLID() ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( ENCRYPT ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( INHERIT ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( VALIN(YES) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NOVALOUT ),&NRSTR(&OPTLINEX)) EQ 0) THEN DO IF &NF_RC EQ 0 THEN + ISREDIT DELETE .ZF .ZL IF &MR_RC GT 0 AND + &ROW EQ 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Manual Review.' SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SYSCALL WRITE_OPT OPT OPTLINE SYSCALL DELETE_STRING P1('DFTLID()') SYSCALL DELETE_STRING P1('ENCRYPT') SYSCALL DELETE_STRING P1('INHERIT') SYSCALL DELETE_STRING P1('NODEMASK(-)') SYSCALL DELETE_STRING P1('VALIN(YES)') SYSCALL DELETE_STRING P1('NOVALOUT') SYSCALL DELETE_STRING P1('DFSYSOUT&LP') ISREDIT FIND ALL ' DFSYSOUT(' ISREDIT (X,Y) = CURSOR ISREDIT FIND NEXT ') ' .ZCSR .ZCSR ISREDIT (X1,Y1) = CURSOR ISREDIT (DATA) = LINE &X ISREDIT LINE &X = '&SUBSTR(1:&Y,&STR(&DATA))+ &SUBSTR(&Y1+2:&LENGTH(&STR(&DATA)),&STR(&DATA))' END IF &MR_RC EQ 0 AND + &FOPT_RC EQ &STR( ) THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AC = &STR(Local changes will be justified in writing with + supporting documentation.) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) END IF &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT BYPASS_ACF0360: + IF &PDINUM NE ACF0370 THEN + GOTO BYPASS_ACF0370 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( MODE(ABORT) ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET AS = &SYSINDEX(&STR(MODE&LP),&NRSTR(&OPTLINEX)) SET AE = &SYSINDEX(&STR( ),&NRSTR(&OPTLINEX),&AS) SET OPTLINE = &STR(&SUBSTR(&AS:&AE,&NRSTR(&OPTLINEX)) @) SYSCALL WRITE_OPT OPT OPTLINE SET RETURN_CODE = 0 ISREDIT FIND ALL 'MODE(RULE' IF &RETURN_CODE EQ 0 AND + &NR_RC EQ 0 THEN + ISREDIT LINE_BEFORE .ZFIRST = DATALINE 'Not Reviewed' GOTO END_EDIT END BYPASS_ACF0370: + IF &PDINUM NE ACF0375 THEN + GOTO BYPASS_ACF0375 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( BLPLOG ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NOCMDREC ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( CONSOLE(NOROLL) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( CPUTIME(LOCAL) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( DATE(MDY) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NODDB ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( DFTLID() ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( DFTSTC() ),&NRSTR(&OPTLINEX)) EQ 0 OR + (&SYSINDEX(&STR( INFOLIST(SECURITY AUDIT) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( INFOLIST(AUDIT SECURITY) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( INFOLIST(AUDIT) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( INFOLIST(SECURITY) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( INFOLIST() ),+ &NRSTR(&OPTLINEX)) EQ 0) OR + &SYSINDEX(&STR( JOBCK ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( MAXVIO(10) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NOTIFY ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( RPTSCOPE ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( SHRDASD ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( STAMPSMF ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( STC ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( TEMPDSN ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( TAPEDSN ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NOUADS ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NOVTAMOPEN ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Not Reviewed' SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE SYSCALL DELETE_STRING P1('ACCESS') /*1 SYSCALL DELETE_STRING P1('NOACCESS') /*1 SYSCALL DELETE_STRING P1('ALTSYS&LP') /*2 SYSCALL DELETE_STRING P1('BLPLOG') /*1 SYSCALL DELETE_STRING P1('BYPSTATS') /*1 SYSCALL DELETE_STRING P1('NOBYPSTATS') /*1 SYSCALL DELETE_STRING P1('NOCACHE') /*1 SYSCALL DELETE_STRING P1('CACHE') /*1 SYSCALL DELETE_STRING P1('CERTEXP&LP') /*2 SYSCALL DELETE_STRING P1('NOCMDREC') /*1 SYSCALL DELETE_STRING P1('DFTLNXG&LP') /*2 SYSCALL DELETE_STRING P1('DFTLNXU&LP') /*2 SYSCALL DELETE_STRING P1('DFTSTC()') /*2 SYSCALL DELETE_STRING P1('ETAUDIT') /*2 SYSCALL DELETE_STRING P1('NOETAUDIT') /*2 SYSCALL DELETE_STRING P1('EVALMODE') /*2 SYSCALL DELETE_STRING P1('NOEVALMODE') /*2 SYSCALL DELETE_STRING P1('INFOLIST(AUDIT SECURITY)') /*2 SYSCALL DELETE_STRING P1('INFOLIST(SECURITY AUDIT)') /*2 SYSCALL DELETE_STRING P1('INFOLIST(AUDIT)') /*2 SYSCALL DELETE_STRING P1('INFOLIST(SECURITY)') /*2 SYSCALL DELETE_STRING P1('INFOLIST()') /*2 SYSCALL DELETE_STRING P1('MODE&LP') /*3 SYSCALL DELETE_STRING P1('NAMEHIDE') /*3 SYSCALL DELETE_STRING P1('NONAMEHIDE') /*3 SYSCALL DELETE_STRING P1('NOTIFY') /*3 SYSCALL DELETE_STRING P1('PRIMARY&LP') /*3 SYSCALL DELETE_STRING P1('PTKRESCK') /*3 SYSCALL DELETE_STRING P1('NOPTKRESCK') /*3 SYSCALL DELETE_STRING P1('STATRECD&LP') /*4 SYSCALL DELETE_STRING P1('STATSINT&LP') /*4 SYSCALL DELETE_STRING P1('STATSLOG&LP') /*4 SYSCALL DELETE_STRING P1('STC') /*4 SYSCALL DELETE_STRING P1('SWTCHKEY&LP') /*4 SYSCALL DELETE_STRING P1('SWTCHTOD&LP') /*4 SYSCALL DELETE_STRING P1('SYSPLEX') /*4 SYSCALL DELETE_STRING P1('NOSYSPLEX') /*4 SYSCALL DELETE_STRING P1('TAPEDSN') /*4 SYSCALL DELETE_STRING P1('TEMPDSN') /*4 SYSCALL DELETE_STRING P1('XAPPLVLD') /*5 SYSCALL DELETE_STRING P1('NOXAPPLVLD') /*5 ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('CONSOLE(NOROLL)') /*1 SYSCALL DELETE_STRING P1('CPF') /*1 SYSCALL DELETE_STRING P1('NOCPF') /*1 SYSCALL DELETE_STRING P1('CPUTIME(LOCAL)') /*1 SYSCALL DELETE_STRING P1('CSLIDEXT') /*1 SYSCALL DELETE_STRING P1('NOCSLIDEXT') /*1 SYSCALL DELETE_STRING P1('DATE(MDY)') /*1 SYSCALL DELETE_STRING P1('NODDB') /*1 SYSCALL DELETE_STRING P1('DFTLID()') /*1 SYSCALL DELETE_STRING P1('ROLESYS&LP') /*3 SYSCALL DELETE_STRING P1('RPTSCOPE') /*3 SYSCALL DELETE_STRING P1('SDNSIZE&LP') /*3 SYSCALL DELETE_STRING P1('SECONDRY&LP') /*3 SYSCALL DELETE_STRING P1('SHRDASD') /*3 SYSCALL DELETE_STRING P1('STAMPSMF') /*3 SYSCALL DELETE_STRING P1('STATS') /*3 SYSCALL DELETE_STRING P1('NOSTATS') /*3 SYSCALL DELETE_STRING P1('WRNDAYS&LP') /*5 ISREDIT TFLOW 4 150 /* /* SYSCALL DELETE_STRING P1('ICSF') /*2 SYSCALL DELETE_STRING P1('NOICSF') /*2 SYSCALL DELETE_STRING P1('JOBCK') /*2 SYSCALL DELETE_STRING P1('KERBLVL&LP') /*2 SYSCALL DELETE_STRING P1('KEYSIZE&LP') /*2 SYSCALL DELETE_STRING P1('LDS') /*2 SYSCALL DELETE_STRING P1('NOLDS') /*2 SYSCALL DELETE_STRING P1('MAXVIO(10)') /*2 SYSCALL DELETE_STRING P1('TNGMON') /*4 SYSCALL DELETE_STRING P1('NOTNGMON') /*4 SYSCALL DELETE_STRING P1('NOUADS') /*4 SYSCALL DELETE_STRING P1('NOVTAMOPEN') /*4 ISREDIT TFLOW 4 150 /* GOTO END_EDIT END BYPASS_ACF0375: + IF &PDINUM NE ACF0380 THEN + GOTO BYPASS_ACF0380 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &NR_RC GT 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Not Reviewed' SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT BYPASS_ACF0380: + IF &PDINUM NE ACF039A THEN + GOTO BYPASS_ACF039A IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET MAXTRY = 1 IF &SYSINDEX( MAXTRY&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MAXTRY&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MAXTRY = &SUBSTR(&X+8:&Y-1,&NRSTR(&OPTLINEX)) END SET PASSLMT = 2 IF &SYSINDEX( PASSLMT&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( PASSLMT&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET PASSLMT = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( MAXTRY&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &MAXTRY EQ 0 OR + &MAXTRY GT 3 OR + &SYSINDEX(&STR( PASSLMT&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &PASSLMT GT 3 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &NRSTR(MAXTRY&LP&MAXTRY&RP PASSLMT&LP&PASSLMT&RP@) SYSCALL WRITE_OPT OPT OPTLINE IF &MAXTRY GT 0 AND + &MAXTRY LT 4 THEN + SYSCALL DELETE_STRING P1('MAXTRY(&MAXTRY)') /*1 IF &PASSLMT LE 3 THEN + SYSCALL DELETE_STRING P1('PASSLMT(&PASSLMT)') /*1 GOTO END_EDIT END BYPASS_ACF039A: + IF &PDINUM NE ACF039B THEN + GOTO BYPASS_ACF039B IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( PSWDRSV ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( PSWDRSVW ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(@) IF &SYSINDEX(&STR( PSWDRSV ),&NRSTR(&OPTLINEX)) EQ 0 THEN + SET OPTLINE = &STR(NOPSWDRSV )&OPTLINE IF &SYSINDEX(&STR( PSWDRSVW ),&NRSTR(&OPTLINEX)) EQ 0 THEN + SET OPTLINE = &STR(NOPSWDRSVW )&OPTLINE SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039B: + IF &PDINUM NE ACF039C THEN + GOTO BYPASS_ACF039C IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT /* PSWDPLST tests SET PSWDPLST = &SYSINDEX(&STR(PSWDPLST),&NRSTR(&OPTLINEX)) IF &PSWDPLST GT 0 THEN DO SET Y = &SYSINDEX(&STR(&RP),&NRSTR(&OPTLINEX),&PSWDPLST) IF &PSWDPLST+9 LT &Y THEN + SET PWCHAR = &SUBSTR(&PSWDPLST+9:&Y-1,&NRSTR(&OPTLINEX))&STR( ) ELSE + SET PWCHAR = &STR() END ELSE + SET PWCHAR = &STR() SET MPWCHAR = &STR() SET TPASSCHAR = &NRSTR(&& * ^ : = ! - % . ? _ | ) SET TPASSCHAR = &STR(&TPASSCHAR) DO X = 1 TO &LENGTH(&NRSTR(&TPASSCHAR)) BY 2 SET T = &SUBSTR(&X:&X+1,&NRSTR(&TPASSCHAR)) IF &SYSINDEX(&NRSTR(&T),&NRSTR(&PWCHAR)) EQ 0 THEN + SET MPWCHAR = &NRSTR(&MPWCHAR)&NRSTR(&T) END IF &LENGTH(&NRSTR(&MPWCHAR)) GT 1 THEN DO SET X = &LENGTH(&NRSTR(&MPWCHAR)) - 1 SET MPWCHAR = &SUBSTR(1:&X,&NRSTR(&MPWCHAR)) END IF &LENGTH(&NRSTR(&MPWCHAR)) GT 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &NRSTR(PSWDPLST(&PWCHAR) @) /* Change made */ SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039C: + IF &PDINUM NE ACF039D THEN + GOTO BYPASS_ACF039D IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( PSWDUC ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(NOPSWDUC @) SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039D: + IF &PDINUM NE ACF039E THEN + GOTO BYPASS_ACF039E IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( PSWDALPH ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(NOPSWDALPH @) SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039E: + IF &PDINUM NE ACF039F THEN + GOTO BYPASS_ACF039F IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( PSWDLC ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(PSWDLC @) SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039F: + IF &PDINUM NE ACF039G THEN + GOTO BYPASS_ACF039G IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET PSWDSIM = 0 IF &SYSINDEX( PSWDSIM&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( PSWDSIM&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET PSWDSIM = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( PSWDSIM&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &PSWDSIM LT 3 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(PSWDSIM&LP&PSWDSIM&RP @) SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039G: + IF &PDINUM NE ACF039H THEN + GOTO BYPASS_ACF039H IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET PSWDMAX = 0 IF &SYSINDEX( PSWDMAX&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( PSWDMAX&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET PSWDMAX = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( PSWDMAX&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &PSWDMAX EQ 0 OR + &PSWDMAX GT 60 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(PSWDMAX&LP&PSWDMAX&RP @) SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039H: + IF &PDINUM NE ACF039I THEN + GOTO BYPASS_ACF039I IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET PSWDMIN = 0 IF &SYSINDEX( PSWDMIN&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( PSWDMIN&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET PSWDMIN = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( PSWDMIN(1) ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) SET OPTLINE = &STR(PSWDMIN&LP&PSWDMIN&RP @) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039I: + IF &PDINUM NE ACF039J THEN + GOTO BYPASS_ACF039J IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET PSWXHST# = 0 IF &SYSINDEX( PSWXHST#&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( PSWXHST#&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET PSWXHST# = &SUBSTR(&X+10:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( PSWXHIST ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( PSWXHST#&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &PSWXHST# LT 5 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(PSWXHST#&LP&PSWXHST#&RP @) IF &SYSINDEX(&STR( PSWXHIST ),&NRSTR(&OPTLINEX)) EQ 0 THEN + SET OPTLINE = &STR(NOPSWXHIST &OPTLINE) SYSCALL WRITE_OPT OPT OPTLINE IF &PSWXHST# GE 5 THEN + SYSCALL DELETE_STRING P1('PSWXHST#(&PSWXHST#)') /*3 GOTO END_EDIT END BYPASS_ACF039J: + IF &PDINUM NE ACF039K THEN + GOTO BYPASS_ACF039K IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET MINPSWD = 1 IF &SYSINDEX( MINPSWD&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MINPSWD&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MINPSWD = &SUBSTR(&X+8:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( MINPSWD(8) ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET OPTLINE = &STR(MINPSWD&LP&MINPSWD&RP @) SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF039K: + IF &PDINUM NE ACF0395 THEN + GOTO BYPASS_ACF0395 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT ISPEXEC SELECT CMD(%CACC1000 ACPCOMP 16.0) SET ACPV160 = &RETURN_CODE IF (&ACPV160 LT 2 AND + &SYSINDEX(&STR( PSWDENCT(AES1) ),&NRSTR(&OPTLINEX)) EQ 0) OR + (&ACPV160 GE 2 AND + &SYSINDEX(&STR( PSWDENCT&LP.AES),&NRSTR(&OPTLINEX)) EQ 0) THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE SYSCALL DELETE_STRING P1('MAXTRY&LP') /*1 SYSCALL DELETE_STRING P1('MINPSWD&LP') /*1 SYSCALL DELETE_STRING P1('PASSLMT&LP') /*1 SYSCALL DELETE_STRING P1('PSWDALPH') /*1 SYSCALL DELETE_STRING P1('NOPSWDALPH') /*1 SYSCALL DELETE_STRING P1('PSWDALT') /*1 SYSCALL DELETE_STRING P1('NOPSWDALT') /*1 SYSCALL DELETE_STRING P1('PSWDFRC') /*1 SYSCALL DELETE_STRING P1('NOPSWDFRC') /*1 SYSCALL DELETE_STRING P1('PSWDHST') /*1 SYSCALL DELETE_STRING P1('NOPSWDHST') /*1 SYSCALL DELETE_STRING P1('PSWDMAXL&LP') /*2 SYSCALL DELETE_STRING P1('PSWDMIN&LP') /*2 SYSCALL DELETE_STRING P1('PSWDMIXD') /*2 SYSCALL DELETE_STRING P1('NOPSWDMIXD') /*2 SYSCALL DELETE_STRING P1('PSWDNAME&LP') /*2 SYSCALL DELETE_STRING P1('PSWDNCH') /*2 SYSCALL DELETE_STRING P1('NOPSWDNCH') /*2 SYSCALL DELETE_STRING P1('PSWDNMIC') /*2 SYSCALL DELETE_STRING P1('NOPSWDNMIC') /*2 SYSCALL DELETE_STRING P1('PSWDREQ') /*3 SYSCALL DELETE_STRING P1('NOPSWDREQ') /*3 SYSCALL DELETE_STRING P1('PSWDRSV') /*3 SYSCALL DELETE_STRING P1('NOPSWDRSV') /*3 SYSCALL DELETE_STRING P1('PSWDSIM&LP') /*3 SYSCALL DELETE_STRING P1('PSWDSPLT') /*3 SYSCALL DELETE_STRING P1('NOPSWDSPLT') /*3 SYSCALL DELETE_STRING P1('PSWDUC') /*3 SYSCALL DELETE_STRING P1('NOPSWDUC') /*3 SYSCALL DELETE_STRING P1('PSWDVFY') /*3 SYSCALL DELETE_STRING P1('NOPSWDVFY') /*3 SYSCALL DELETE_STRING P1('PSWDVOWL') /*3 SYSCALL DELETE_STRING P1('NOPSWDVOWL') /*3 ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('CLEARVIO') /*1 SYSCALL DELETE_STRING P1('NOCLEARVIO') /*1 SYSCALL DELETE_STRING P1('PSWDENCT&LP.AES1&RP') /*1 IF &ACPV160 GE 2 THEN + SYSCALL DELETE_STRING P1('PSWDENCT&LP.AES2&RP') /*1 SYSCALL DELETE_STRING P1('PSWDNUM') /*2 SYSCALL DELETE_STRING P1('NOPSWDNUM') /*2 SYSCALL DELETE_STRING P1('PSWDPAIR&LP') /*2 SYSCALL DELETE_STRING P1('PSWDPLID') /*2 SYSCALL DELETE_STRING P1('NOPSWDPLID') /*2 SYSCALL DELETE_STRING P1('PSWDPLST&LP') /*2 SYSCALL DELETE_STRING P1('WRNDAYS&LP') /*4 ISREDIT TFLOW 4 150 IF &ACPV160 GE 2 THEN DO SYSCALL DELETE_STRING P1('ONEPWALG') /*? SYSCALL DELETE_STRING P1('NOONEPWALG') /*? END SYSCALL DELETE_STRING P1('PSWDJES') /*1 SYSCALL DELETE_STRING P1('NOPSWDJES') /*1 SYSCALL DELETE_STRING P1('PSWDLC') /*1 SYSCALL DELETE_STRING P1('NOPSWDLC') /*1 SYSCALL DELETE_STRING P1('PSWDLID') /*1 SYSCALL DELETE_STRING P1('NOPSWDLID') /*1 SYSCALL DELETE_STRING P1('PSWDMAX&LP') /*1 SYSCALL DELETE_STRING P1('PSWDXTR') /*3 SYSCALL DELETE_STRING P1('NOPSWDXTR') /*3 SYSCALL DELETE_STRING P1('PSWNAGE') /*3 SYSCALL DELETE_STRING P1('NOPSWNAGE') /*3 SYSCALL DELETE_STRING P1('PSWXHIST') /*3 SYSCALL DELETE_STRING P1('NOPSWXHIST') /*3 SYSCALL DELETE_STRING P1('PSWXHST#&LP') /*3 ISREDIT TFLOW 4 150 GOTO END_EDIT END BYPASS_ACF0395: + IF &PDINUM NE ACF0400 THEN + GOTO BYPASS_ACF0400 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT SET ALPHA = 0 IF &SYSINDEX( ALPHA&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( ALPHA&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET ALPHA = &SUBSTR(&X+7:&Y-1,&NRSTR(&OPTLINEX)) END SET HISTORY = 0 IF &SYSINDEX( HISTORY&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( HISTORY&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET HISTORY = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET MAXDAYS = 0 IF &SYSINDEX( MAXDAYS&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MAXDAYS&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MAXDAYS = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET MAXLEN = 100 IF &SYSINDEX( MAXLEN&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MAXLEN&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MAXLEN = &SUBSTR(&X+8:&Y-1,&NRSTR(&OPTLINEX)) END SET MINDAYS = 0 IF &SYSINDEX( MINDAYS&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MINDAYS&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MINDAYS = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET MINLEN = 9 IF &SYSINDEX( MINLEN&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MINLEN&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MINLEN = &SUBSTR(&X+8:&Y-1,&NRSTR(&OPTLINEX)) END SET MINWORD = 1 IF &SYSINDEX( MINWORD&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( MINWORD&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET MINWORD = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET NUMERIC = 0 IF &SYSINDEX( NUMERIC&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( NUMERIC&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET NUMERIC = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET REPCHAR = IF &SYSINDEX( REPCHAR&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( REPCHAR&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) IF &X+9 LE &Y-1 THEN + SET REPCHAR = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET SPECIAL = 0 IF &SYSINDEX( SPECIAL&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( SPECIAL&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET SPECIAL = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END SET WARNDAYS = 1 IF &SYSINDEX( WARNDAYS&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( WARNDAYS&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET WARNDAYS = &SUBSTR(&X+10:&Y-1,&NRSTR(&OPTLINEX)) END /* SPECLIST tests SET SPECLIST = &SYSINDEX(&STR(SPECLIST),&NRSTR(&OPTLINEX)) IF &SPECLIST GT 0 THEN DO SET Y = &SYSINDEX(&STR(&RP),&NRSTR(&OPTLINEX),&SPECLIST) IF &SPECLIST+10 LT &Y THEN + SET PWCHAR = &SUBSTR(&SPECLIST+9:&Y-1,&NRSTR(&OPTLINEX))&STR( ) ELSE + SET PWCHAR = &STR() END ELSE + SET PWCHAR = &STR() SET MPWCHAR = &STR() SET TPASSCHAR = &NRSTR(&& * ^ : = ! - % . ? _ | ) SET TPASSCHAR = &STR(&TPASSCHAR) DO X = 1 TO &LENGTH(&NRSTR(&TPASSCHAR)) BY 2 SET T = &SUBSTR(&X:&X+1,&NRSTR(&TPASSCHAR)) IF &SYSINDEX(&NRSTR(&T),&NRSTR(&PWCHAR)) EQ 0 THEN + SET MPWCHAR = &NRSTR(&MPWCHAR)&NRSTR(&T) END IF &LENGTH(&NRSTR(&MPWCHAR)) GT 1 THEN DO SET X = &LENGTH(&NRSTR(&MPWCHAR)) - 1 SET MPWCHAR = &SUBSTR(1:&X,&NRSTR(&MPWCHAR)) END SET OPTLINEX = &NRSTR(&OPTLINEX) IF &SYSINDEX(&STR( ALPHA&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &ALPHA EQ 0 OR + &SYSINDEX(&STR( HISTORY&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &HISTORY LT 10 OR + &SYSINDEX(&STR( MAXDAYS&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &MAXDAYS EQ 0 OR + &MAXDAYS GT 60 OR + &SYSINDEX(&STR( MAXLEN(100)),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( MINDAYS&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &MINDAYS EQ 0 OR + &SYSINDEX(&STR( MINLEN&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &MINLEN LT 15 OR + &SYSINDEX(&STR( MINWORD&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &MINWORD EQ 0 OR + &SYSINDEX(&STR( NUMERIC&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &NUMERIC EQ 0 OR + &SYSINDEX(&STR( SPECIAL&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &SPECIAL EQ 0 OR + &LENGTH(&NRSTR(&MPWCHAR)) GT 0 OR + &SYSINDEX( WARNDAYS&LP,&NRSTR(&OPTLINEX)) EQ 0 OR + &WARNDAYS EQ 0 OR + &WARNDAYS GT 10 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE SYSCALL DELETE_STRING P1('ALLOW') /*1 IF &ALPHA GT 0 THEN + SYSCALL DELETE_STRING P1('ALPHA(&ALPHA)') /*1 SYSCALL DELETE_STRING P1('NOCMD-CHG') /*1 SYSCALL DELETE_STRING P1('CMD-CHG') /*1 IF &HISTORY GE 10 THEN + SYSCALL DELETE_STRING P1('HISTORY(&HISTORY)') /*1 SYSCALL DELETE_STRING P1('LID') /*1 SYSCALL DELETE_STRING P1('NOLID') /*1 IF &MAXDAYS GT 0 AND + &MAXDAYS LE 60 THEN + SYSCALL DELETE_STRING P1('MAXDAYS(&MAXDAYS)') /*1 IF &MAXLEN EQ 100 THEN + SYSCALL DELETE_STRING P1('MAXLEN(&MAXLEN)') /*1 SYSCALL DELETE_STRING P1('PWPLC') /*2 SYSCALL DELETE_STRING P1('NOPWPLC') /*2 SYSCALL DELETE_STRING P1('PWPUC') /*2 SYSCALL DELETE_STRING P1('NOPWPUC') /*2 IF &NUMERIC GT 0 THEN + SYSCALL DELETE_STRING P1('NUMERIC(&NUMERIC)') /*2 IF &SPECIAL GT 0 THEN + SYSCALL DELETE_STRING P1('SPECIAL(&SPECIAL)') /*2 IF &LENGTH(&NRSTR(&MPWCHAR)) EQ 0 THEN + SYSCALL DELETE_STRING P1('SPECLIST&LP') /*2 ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('REPCHAR&LP') /*2 IF &MINDAYS GT 0 THEN + SYSCALL DELETE_STRING P1('MINDAYS(&MINDAYS)') /*1 IF &MINLEN GE 14 THEN + SYSCALL DELETE_STRING P1('MINLEN(&MINLEN)') /*1 IF &MINWORD GT 0 THEN + SYSCALL DELETE_STRING P1('MINWORD(&MINWORD)') /*1 SYSCALL DELETE_STRING P1('TEMP-AGE') /*2 SYSCALL DELETE_STRING P1('NOTEMP-AGE') /*2 IF &WARNDAYS GT 0 AND + &WARNDAYS LE 10 THEN + SYSCALL DELETE_STRING P1('WARNDAYS(&WARNDAYS)') /*2 SYSCALL DELETE_STRING P1('NOALLOW') /*1 ISREDIT TFLOW 4 150 GOTO END_EDIT END BYPASS_ACF0400: + IF &PDINUM NE ACF0420 THEN + GOTO BYPASS_ACF0420 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR(VOLMASK(-)),&NRSTR(&OPTLINE)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF0420: + IF &PDINUM NE ACF0430 THEN + GOTO BYPASS_ACF0430 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( NO$NOSORT ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( CENTRAL ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( CHANGE ),&NRSTR(&OPTLINEX)) EQ 0 OR + (&SYSINDEX(&STR( DECOMP(SECURITY AUDIT) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( DECOMP(AUDIT SECURITY) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( DECOMP(AUDIT) ),+ &NRSTR(&OPTLINEX)) EQ 0 AND + &SYSINDEX(&STR( DECOMP(SECURITY) ),+ &NRSTR(&OPTLINEX)) EQ 0 ) THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE SYSCALL DELETE_STRING P1('NO$NOSORT') SYSCALL DELETE_STRING P1('CENTRAL') SYSCALL DELETE_STRING P1('CHANGE') SYSCALL DELETE_STRING P1('COMPDYN') SYSCALL DELETE_STRING P1('NOCOMPDYN') SYSCALL DELETE_STRING P1('DECOMP(AUDIT SECURITY)') SYSCALL DELETE_STRING P1('DECOMP(SECURITY AUDIT)') SYSCALL DELETE_STRING P1('DECOMP(SECURITY)') SYSCALL DELETE_STRING P1('DECOMP(AUDIT)') SYSCALL DELETE_STRING P1('RULELONG') SYSCALL DELETE_STRING P1('NORULELONG') SYSCALL DELETE_STRING P1('NOVOLRULE') SYSCALL DELETE_STRING P1('VOLRULE') SYSCALL DELETE_STRING P1('NOVSAMFAIL') SYSCALL DELETE_STRING P1('VSAMFAIL') GOTO END_EDIT END BYPASS_ACF0430: + IF &PDINUM NE ACF0480 THEN + GOTO BYPASS_ACF0480 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR(VOLMASK()),+ &NRSTR(&OPTLINE)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF0480: + IF &PDINUM NE ACF0500 THEN + GOTO BYPASS_ACF0500 SET WAITIME = 0 IF &SYSINDEX( WAITIME&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( WAITIME&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET WAITIME = &SUBSTR(&X+9:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX( REGION&LP,&NRSTR(&OPTLINEX)) GT 0 THEN DO SET X = &SYSINDEX( REGION&LP,&NRSTR(&OPTLINEX)) SET Y = &SYSINDEX(&STR(&RP ),&NRSTR(&OPTLINEX),&X) SET REGION = &SUBSTR(&X+8:&Y-1,&NRSTR(&OPTLINEX)) END IF &SYSINDEX(&STR( ACCOUNT(1) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( BYPASS(#) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( CHAR(BS) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( CMDLIST() ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( LINE(ATTN) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( LOGONCK ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( PERFORM(0) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( NOQLOGON ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( REGION&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( SUBCLSS() ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( SUBHOLD() ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( SUBMSGC() ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( TIME(0) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( TSOSOUT(A) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( UNIT(SYSDA) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( WAITIME&LP),&NRSTR(&OPTLINEX)) EQ 0 OR + &WAITIME EQ 0 OR + &WAITIME GT 60 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('ACCOUNT(1)') SYSCALL DELETE_STRING P1('REGION(®ION)') SYSCALL DELETE_STRING P1('BYPASS(#)') SYSCALL DELETE_STRING P1('SUBCLSS()') SYSCALL DELETE_STRING P1('CHAR(BS)') SYSCALL DELETE_STRING P1('TIME(0)') SYSCALL DELETE_STRING P1('CMDLIST()') SYSCALL DELETE_STRING P1('NOFSRETAIN') SYSCALL DELETE_STRING P1('FSRETAIN') SYSCALL DELETE_STRING P1('LINE(ATTN)') SYSCALL DELETE_STRING P1('LOGONCK') SYSCALL DELETE_STRING P1('PERFORM(0)') SYSCALL DELETE_STRING P1('TSOSOUT(A)') SYSCALL DELETE_STRING P1('UNIT(SYSDA)') SYSCALL DELETE_STRING P1('PROC&LP') SYSCALL DELETE_STRING P1('NOQLOGON') SYSCALL DELETE_STRING P1('NOLOGHERE') SYSCALL DELETE_STRING P1('LOGHERE') SYSCALL DELETE_STRING P1('SUBHOLD()') SYSCALL DELETE_STRING P1('SUBMSGC()') ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('NOBYPPAUSE') SYSCALL DELETE_STRING P1('BYPPAUSE') SYSCALL DELETE_STRING P1('NOPWPHRASE') SYSCALL DELETE_STRING P1('PWPHRASE') IF &WAITIME GT 0 AND + &WAITIME LE 60 THEN + SYSCALL DELETE_STRING P1('WAITIME(&WAITIME)') SYSCALL DELETE_STRING P1('NOIKJEFLD1') SYSCALL DELETE_STRING P1('IKJEFLD1') SYSCALL DELETE_STRING P1('TSOGNAME&LP') ISREDIT TFLOW 4 150 GOTO END_EDIT END BYPASS_ACF0500: + IF &PDINUM NE ACF0510 THEN + GOTO BYPASS_ACF0510 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR(STRING(A12FA11C1A270C0D)),+ &NRSTR(&OPTLINE)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ACF0510: + IF &PDINUM NE ACF0530 THEN + GOTO BYPASS_ACF0530 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( CR(15) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( IDLE(17) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( LENGTH(8) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M1(X) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M2(N) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M3(Z) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M4(M) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( STRING() ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE /*ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('CR(15)') SYSCALL DELETE_STRING P1('IDLE(17)') SYSCALL DELETE_STRING P1('LENGTH(8)') SYSCALL DELETE_STRING P1('M1(X)') SYSCALL DELETE_STRING P1('M2(N)') SYSCALL DELETE_STRING P1('M3(Z)') SYSCALL DELETE_STRING P1('M4(M)') SYSCALL DELETE_STRING P1('STRING()') ISREDIT TFLOW 4 150 GOTO END_EDIT END BYPASS_ACF0530: + IF &PDINUM NE ACF0540 THEN + GOTO BYPASS_ACF0540 IF &FOPT_RC EQ 0 OR + &FOPT_RC EQ &STR( ) THEN + GOTO END_EDIT IF &SYSINDEX(&STR( BS(16) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( LENGTH(8) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M1(X) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M2(N) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M3(Z) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( M4(M) ),&NRSTR(&OPTLINEX)) EQ 0 OR + &SYSINDEX(&STR( STRING() ),&NRSTR(&OPTLINEX)) EQ 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SYSCALL WRITE_OPT OPT OPTLINE /*ISREDIT TFLOW 4 150 SYSCALL DELETE_STRING P1('BS(16)') SYSCALL DELETE_STRING P1('LENGTH(8)') SYSCALL DELETE_STRING P1('M1(X)') SYSCALL DELETE_STRING P1('M2(N)') SYSCALL DELETE_STRING P1('M3(Z)') SYSCALL DELETE_STRING P1('M4(M)') SYSCALL DELETE_STRING P1('STRING()') ISREDIT TFLOW 4 150 GOTO END_EDIT END BYPASS_ACF0540: + IF &PDINUM NE ZSMSA006 THEN + GOTO BYPASS_ZSMSA006 IF &FINDRC GT 0 AND + &NF_RC = 0 THEN DO ISREDIT DELETE .ZF .ZL END IF &FINDRC EQ 4 THEN DO IF &ND_RC NE 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + not defined:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END END IF &FINDRC EQ 6 THEN DO IF &SI_RC NE 0 THEN DO SET AC = &STR(The following GSO record value(s) is (are) + set improperly:) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' END END IF &FINDRC NE 0 THEN DO SYSCALL WRITE_OPT OPT OPTLINE GOTO END_EDIT END BYPASS_ZSMSA006: + IF &ROW EQ 0 THEN DO ISREDIT LINE_AFTER .ZLAST = DATALINE 'Not a Finding' ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' SET NF_RC = 0 END IF &NF_RC EQ 0 AND + &NRSTR(&OPTLINE) NE &STR( ) THEN + SYSCALL WRITE_OPT OPT OPTLINE END_EDIT: + ISPEXEC VPUT ( - AM07VGE - ) ASIS ISREDIT END EXIT WRITE_OPT: PROC 2 P1 P2 SYSREF &P1 &P2 SET P2L = &LENGTH(&NRSTR(&P2)) SET AC = &STR( &P1) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) SET X = 1 DO UNTIL &X GE &P2L SET Y = &SYSINDEX(&STR(@),&NRSTR(&P2),&X) SET AC = &STR( &SUBSTR(&X:&Y-1,+ &NRSTR(&P2))) ISREDIT LINE_AFTER .ZLAST = DATALINE (AC) SET X = &Y + 1 END ISREDIT LINE_AFTER .ZLAST = DATALINE ' ' RETURN CODE(&RETURN_CODE) END DELETE_STRING: PROC 0 P1( ) SET LP = &STR(( IF &NRSTR(&P1) EQ &STR() THEN RETURN CODE(1) SET RETURN_CODE = 0 IF &SUBSTR(&LENGTH(&NRSTR(&P1)),&NRSTR(&P1)) NE &STR(&LP) THEN DO ISREDIT CHANGE ALL ' &NRSTR(&P1) ' ' ' RETURN CODE(2) END SET RETURN_CODE = 0 ISREDIT FIND ALL ' &NRSTR(&P1)' IF &RETURN_CODE GT 0 THEN RETURN CODE(3) ISREDIT (X,Y) = CURSOR ISREDIT FIND NEXT ') ' .ZCSR .ZCSR IF &RETURN_CODE GT 0 THEN RETURN CODE(4) ISREDIT (X1,Y1) = CURSOR ISREDIT (DATA) = LINE &X SET DATA = &SUBSTR(1:&Y,&NRSTR(&DATA))+ &SUBSTR(&Y1+2:&LENGTH(&NRSTR(&DATA)),&NRSTR(&DATA)) ISREDIT LINE &X = (DATA) RETURN CODE(5) END