This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: setup.exe local install with 2.218.2.4 fails, 2.78.2.15works


> 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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]