Subject: bug#12621: Emacs 24.1 crashing on Win7

From: Arunas Ruksnaitis <[email-masked]>
Date: Thu, 13 Dec 2012 18:41:10 +0000 (GMT)

...and yes, it does not crash if I provide the physical server instead of DFS.
Takes ~30 sec to open the first file and DirEd still does not display the correct owner....but does not crash.
(setf w32-get-true-file-attributes nil) does not help - opening a file takes ~30 sec
 
-Arunas

________________________________
 From: Eli Zaretskii <[email-masked]>
To: Arunas Ruksnaitis <[email-masked]> 
Cc: [email-masked] 
Sent: Thursday, 13 December 2012, 18:04
Subject: Re: bug#12621: Emacs 24.1 crashing on Win7
 
> Date: Thu, 13 Dec 2012 10:22:42 +0000 (GMT)
> From: Arunas Ruksnaitis <[email-masked]>
> 
> Just to confirm, this is a big problem for me, too.
> My observations confirm the original report.
> Stack trace, should it help, is here. I guess "lookup_account_sid" is passing an invalid lpSid?

No, I don't think the Sid can be invalid, because it is validated just
before the call that crashes, by calling IsValidSid:

  if (what == UID)
    result = get_security_descriptor_owner (psd, &sid, &dflt);
  else if (what == GID)
    result = get_security_descriptor_group (psd, &sid, &dflt);
  else
    result = 0;

  if (!result || !is_valid_sid (sid))  <<<<<<<<<<<<<<<<<<<<<<<<<<<
    use_dflt = 1;
  else if (!w32_cached_id (sid, id, nm))
    {
      /* If FNAME is a UNC, we need to lookup account on the
     specified machine.  */
      if (IS_DIRECTORY_SEP (fname[0]) && IS_DIRECTORY_SEP (fname[1])
      && fname[2] != '\0')
    {
      const char *s;
      char *p;

      for (s = fname + 2, p = machine;
           *s && !IS_DIRECTORY_SEP (*s); s++, p++)
        *p = *s;
      *p = '\0';
      mp = machine;
    }

      if (!lookup_account_sid (mp, sid, name, &name_len,
                   domain, &domain_len, &ignore)
      || name_len > UNLEN+1)

I actually suspect that the problem might be in the server name, the
first argument to lookup_account_sid.  If you can easily reproduce
this under GDB, can you show what is the value of 'fname' and of
'machine' in the above snippet?