Number: 1879 Date: 16-Aug-84 15':44':25 Submitter: Sannella.PA Source: Masinter.pa Subject: PROC and LLSTK leave stack momentarily invalid Lisp Version: Description: ' Date': 14 Aug 84 16':11 PDT' From': Masinter.pa' Subject': Lisp': PROC and LLSTK leave stack momentarily invalid' To': LispSupport.pa' cc': Masinter, vanmelle' ' Lisp System Date': 14-Aug-84 11':56':06' Machine': Dorado (Plaza)' Microcode version': 24,4' Memory size': 10000' Frequency': Intermittent' Impact': Serious' ' PROC and LLSTK should do all operations which leave the stack invalid in the MISCAPPLY context, so that if you are running in the user context, the stack is valid. This will allow SPY to work, otherwise it is hopeless.' ' -----' ' Date': 15 Aug 84 11':27 PDT' From': vanMelle.pa' Subject': Re': Lisp': PROC and LLSTK leave stack momentarily invalid' In-reply-to': Masinter.pa''s message of 14 Aug 84 16':11 PDT' To': Masinter.pa' cc': LispSupport.pa, vanMelle.pa' ' I have fixed PROC to do its stack diddling in an order that assures the current stack is always valid.' ' The only LLSTK-like places that I can think would be a problem would be where someone replaces one of the swapped 2-word fields in a way that someone might be able to look at the field in the middle of the replace. This means someone replacing the FNHEADER field (I don''t think anyone ever does) or the NAMETABLE field at a time when the VALIDNAMETABLE bit is already on. It is my belief that SETSTKNAME is the only function that does the latter, and I have fixed it to turn the bit off before doing the replace, then turn it back on afterward.' ' Thus, I think SPY is once again in business.' ' Bill' Workaround: Test Case: Edit-By: Edit-Date: Attn: Assigned To: In/By: Disposition: System: Language Support Subsystem: Stack and Interpreter Machine: Disk: Microcode Version: Memory Size: File Server: Server Software Version: Difficulty: Frequency: Impact: Serious Priority: Hopefully Status: Fixed Problem Type: Bug Source Files: