That would surely be nice, Ed, but there are so many possibilities for 
circumvention of any such "solution" that I would be skeptic No 1. (And I 
haven't thought about nastiness like this in YEARS!).

Mike

At 11:21 PM 10/9/2017, you wrote:

>Like most ISVs writing HLASM code, we use OPTABLE to ensure our programmers 
>don't accidentally use instructions that aren't available on older machines 
>that we must still support.
>
>Currently, we're using OPTABLE(YOP) because our minimum supported OS is z/OS 
>1.12. (It's not until z/OS 2.1 that we can leap ahead to the z9 machines.)
>
>We recently terminated a reckless/destructive/rogue/cowboy programmer who 
>would routinely and subversively insert "land mines" into our code without 
>anyone knowing. Someone found another one this week:
>
>|        DO UNTIL=NO                   Until all chars processed
>|  * Until we break free from OPTABLE(YOP), the ORG game must be used
>|          TROT  R14,R2                  Convert to hex
>|          ORG   *-2                     ORG back to set M3 field
>|          DC    X'10'                   M3 = 1 to suppress stopper
>|          ORG   ,                       ORG back
>|        ENDDO ,                       EndDo TROT
>
>Obviously, the right way to code this would have been to use ACONTROL OPTABLE 
>with surrounding PUSH/POP to get the newer TROT function. But, doing so could 
>raise the visibility of the sabotage to the level where someone might notice. 
>So, he chose to alter the instruction via ORG/DC. (IMHO, ORGing back to change 
>an instruction is a form of self-modifying code, which we don't allow.)
>
>It might be nice if the assembler could generate an error or warning message 
>if an instruction is modified at compile time.
>
>Thoughts?
>
>-- 
>Phoenix Software International
>Edward E. Jaffe
>831 Parkview Drive North
>El Segundo, CA 90245
>http://www.phoenixsoftware.com/

Reply via email to