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

Previous Next

Packages: emacs, w32;

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 #44 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:30:20 +0000 (GMT)
[Message part 1 (text/plain, inline)]
Can reproduce easily. No joy with symbol values:

"print fname" or "print machine:
(gdb) down

#34 0x0102a12d in get_name_and_id ()
(gdb) print machine
No symbol "machine" in current context.
(gdb) print mp
No symbol "mp" in current context.
(gdb) print fname
No symbol "fname" in current context.
 
The "machine" part of UNC is actually not a machine but a DFS server. It does not have own shares but consolidates multiple fileservers in one view.

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