GNU bug report logs - #12621
Win32 (Ver:24.2); Crashes when files from shared folders are accessed

Previous Next

Packages: w32, emacs;

Reported by: Arvind Devarajan <arvind.devarajan <at> outlook.com>

Date: Thu, 11 Oct 2012 03:49:01 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #47 received at 12621 <at> debbugs.gnu.org (full text, mbox):

From: Arunas Ruksnaitis <aris020 <at> yahoo.co.uk>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: "12621 <at> debbugs.gnu.org" <12621 <at> debbugs.gnu.org>
Subject: Re: bug#12621: Emacs 24.1 crashing on Win7
Date: Thu, 13 Dec 2012 18:41:10 +0000 (GMT)
[Message part 1 (text/plain, inline)]
...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 <eliz <at> gnu.org>
To: Arunas Ruksnaitis <aris020 <at> yahoo.co.uk> 
Cc: 12621 <at> debbugs.gnu.org 
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 <aris020 <at> yahoo.co.uk>
> 
> 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?
[Message part 2 (text/html, inline)]

This bug report was last modified 12 years and 92 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.