[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [DotGNU]Qt-Sharp Errors
From: |
Rhys Weatherley |
Subject: |
Re: [DotGNU]Qt-Sharp Errors |
Date: |
Fri, 20 Dec 2002 19:08:58 +1000 |
User-agent: |
KMail/1.4.3 |
On Friday 20 December 2002 05:50 pm, Gopal V wrote:
> > http://www.mylinuxisp.com/~mathpup/Qt.dll-csc
>
> ldstr "()"
> ldstr "(int)"
> leave.s ?L4c176
> ?L4c176:
> This is the thing causing verification failures ...
That looks very familiar. This wouldn't happen to be a "switch" statement on
a string expression inside a "try"/"foreach" would it?
For some reason, csc pushes all of the key values onto the stack at the top of
the switch, and then promptly ignores them. I had a similar issue in the
pnetlib test suite a couple of weeks ago, and just put it down to "bug in
csc: work around it by rewriting the test code". A chain of if's fixed the
problem for me.
We could fix this by setting the stack height to zero during processing of
"leave" in the verifier. Currently it makes sure that the height is already
zero. The CVM coder will have to be notified to pop all of the values by
calling "ILCoderPop" for each item still on the stack before processing the
finally blocks and outputting the jump.
It should be safe to do this - no security issues are introduced by merely
ignoring the erroneous values on the stack.
Cheers,
Rhys.