delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/05/14/08:54:29

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Server-Uuid: 28431ec2-fd89-11d2-a089-00a0c9f498e6
Message-ID: <0DB4E7930F5CD411AC93009027EE744C09345B47@ddcexch.ddcnet.detroitdiesel.com>
From: "Kilroy, David" <david DOT kilroy AT detroitdiesel DOT com>
To: Cygwin <Cygwin AT cygwin DOT com>
Subject: RE: setup.exe local install with 2.218.2.4 fails, 2.78.2.15
works
Date: Tue, 14 May 2002 08:50:32 -0400
MIME-Version: 1.0
X-WSS-ID: 10FFD85B285338-01-01

> It seems that all of these bug reports are on Win2K and XP Pro.  
> Has anyone successfully tested the recent setup.exe releases 
> (since the MD5 updates) on either of these platforms?

I can confirm that setup 2.218.2.4 works on my Win2k SP2 box. Both install
from internet and install from local directory.

I did get the stack and parse errors in previous md5 setup snapshots.

In 2.218.2.4 you will also see a crash if you have a file in the local cache
directory with a 10 letter filename _and_ the string 'setup.ini' in the full
path/filename (Unfortunate if you edit setup.ini with emacs). This may or
may not have been fixed in .5 and .6; if it hasn't, see description below.


Dave.



line nos from 2.218.2.4 src posted to setup_snapshots.
ini.cc: find_routine

line 68:
  if (!strstr (path, "setup.ini"))
    return;

...

line 85:
  /* Attempt to unescape the string */
  path[strlen(path) -10] = '\0';
  String mirror = rfc1738_unescape_part (path);

tries to put null terminator at the last separator.

If at this point you are at the root of the cache, and you are looking at
setup.ini, the byte _before_ path is touched (which may affect further
recursion of directories, see find.cc). The file is then parsed. Packages
added to the mirror 'setup.ini.

If we are looking at setup.ini in a cached mirror directory, everything
works fine.

If strlen(path) is 10 at this point (as with the file setup.ini~) the null
is placed at the first char of path, causing the rfc1738 code to segfault
(passing it a null string).

We attempt to process other files that match and do not cause this fault. If
it is indeed a setup backup, the package entries are added to the database
under a bad? mirror name (hence files will not be found if that package is
selected?).

Possible fix off the top of my head (which matches files _only_ called
setup.ini):

line 68:
	if(!strcmp(path + strlen(path)- 9, "setup.ini"))


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


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