The following was reported to xemacs-nt: Tom Howland wrote: > > The cygwin release of xemacs 21.4 crashes with cygwin 1.3.6-1. The > problem is can be worked around by reverting back to the earlier release > of cygwin, cygwin 1.3.5-3 > > What is happening is that the assert on line 81 of xemacs/src/realpath.c > is reached with a null pointer. This happens only when I attempt to open > a file that has something to do with /cygdrive. That is, I can open > files unless I am using drive letter tricks like /c/temp/foo or > /cygdrive/d/baz > > This is probably related to the changes in cygwin enabling treating > /cygdrive as a directory.
Q: Is the above behavior a problem with xemacs, or cygwin? (e.g. should we add some extra null checking to *our* stuff?) >From xemacs/src/realpath.c: ... static int win32_readlink (const char * name, char * buf, int size) { WIN32_FIND_DATA find_data; HANDLE dir_handle = NULL; int len = 0; int err = 0; const char* lastname; int count = 0; const char* tmp; char* res = NULL; assert (*name); // LINE 81! /* Sort of check we have a valid filename. */ ... I don't know where win32_readlink is called from, or how where the surrounding context gets the char* that it uses as the first arg when it calls win32_readlink. To me, this looks like an xemacs problem, but I just wanted to check... --Chuck -- 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/