delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/04/17/00:27:46

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <10104170423.AA18680@clio.rice.edu>
Subject: Re: Stub trying to find COMSPEC=A:\COMMAND.COM\CWSDPMI.EXE!
To: eliz AT is DOT elta DOT co DOT il
Date: Mon, 16 Apr 2001 23:23:34 -0500 (CDT)
Cc: djgpp-workers AT delorie DOT com, ams AT ludd DOT luth DOT se (Martin Str|mberg)
In-Reply-To: <9003-Sun15Apr2001113620+0300-eliz@is.elta.co.il> from "Eli Zaretskii" at Apr 15, 2001 11:36:21 AM
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

> The stub was supposed to end the scan in load_dpmi when it sees this
> null character.
> 
> Obviously, it doesn't.  So there's some bug in load_dpmi wrt the
> trailing null character of PATH= setting in the environment.

I looked at the stub.asm code (well, some version I have lying around
which I am guessing is the same as the current release) and it's buggy.

There is a section:
        call    store_env_string        ; to "loadname"
        cmp     si, loadname            ; anything there?
        je      do_exec                 ; final try (no path) let it return

Which won't work at all, since we never check for a difference between
null and ; as delimiters (si == loadname only after a double null).
A poorly thought out fix might be:                        

        call    store_env_string        ; to "loadname"
        or      al,al                   ; check terminating char
        jne     @f1                     ; if ; continue
        dec     di                      ; else point at null for next pass
@f1:
        cmp     si, loadname            ; anything there?
        je      do_exec                 ; final try (no path) let it return

This appears to have been there since October 1994 ...

- Raw text -


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