bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#12621: Emacs 24.1 crashing on Win7


From: Arunas Ruksnaitis
Subject: bug#12621: Emacs 24.1 crashing on Win7
Date: Thu, 13 Dec 2012 18:30:20 +0000 (GMT)

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@gnu.org>
To: Arunas Ruksnaitis <aris020@yahoo.co.uk>
Cc: 12621@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@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?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]