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]

[Fwd: xemacs 21.4 crashes with cygwin 1.3.6-1]


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/


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