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: