delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/12/10/17:28:22

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f
From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <10112102224.AA25539@clio.rice.edu>
Subject: Re: go32-v2 memory chompage [was: Re: v2.03 refresh ...]
To: eliz AT is DOT elta DOT co DOT il
Date: Mon, 10 Dec 2001 16:24:58 -0600 (CST)
Cc: djgpp-workers AT delorie DOT com, acottrel AT ihug DOT com DOT au
In-Reply-To: <3099-Mon10Dec2001212608+0200-eliz@is.elta.co.il> from "Eli Zaretskii" at Dec 10, 2001 09:26:09 PM
X-Mailer: ELM [version 2.5 PL2]
Mime-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> > Now, we pass the child a stubinfo psp returned from a dos memory block
> > allocation... but it doesn't look like a valid DPMI psp selector to me.
> 
> So, are you saying that the W2K DPMI host returns a bogus selector
> when we allocate DOS memory?  Another W2K bug? ;-)

No, it's a valid selector, but it's not a valid "internal NTVDM identified
PSP for talking with DPMI/DOSX".

> > We let the child "exit" back to us.  During that exit the child passes 
> > this bogus psp to NT as a set psp - what happens?  Then the child may 
> > do some operations to NTVDM/DPMI with an invalid psp?
> 
> I think the ``exit back to us'' part needs closer scrutiny.  IIRC,
> the way  a child program invoked via v2load exits is different from a
> normal nesting via dosexec.  Sorry, I forget the details, and don't
> have time to look them up, but perhaps the comments in go32-v2.c's
> `main' function will help.

I wrote the original versions of all that stuff so I remember :-)
And it hasn't changed radically ... For go32-v2 we don't ever return
to the go32-v2 image!  So, when we set the bogus PSP nothing gets
cleaned up properly.  (We depend on the DPMI provider to do cleanup ...)
I don't see how this works under CVS version either
(and Andrew's note seems to indicate it doesn't).

Now, has dosexec or make been enhanced to run the .exe instead of
calling go32-v2 in cvs  (ie are we avoiding seeing the problem 
because we don't do this?)

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019