GNU bug report logs - #70415
30.0.50; [Cygwin] `lock-file' creates a symlink with funny name

Previous Next

Package: emacs;

Reported by: Katsumi Yamaoka <yamaoka <at> jpl.org>

Date: Tue, 16 Apr 2024 12:34:04 UTC

Severity: normal

Found in version 30.0.50

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ken Brown <kbrown <at> cornell.edu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: yamaoka <at> jpl.org, 70415 <at> debbugs.gnu.org
Subject: bug#70415: 30.0.50; [Cygwin] `lock-file' creates a symlink with funny name
Date: Sun, 5 May 2024 12:21:03 -0400
On 5/5/2024 1:40 AM, Eli Zaretskii wrote:
> Right.  Does the below look like the right change to support such
> weird cases?
> 
> diff --git a/src/filelock.c b/src/filelock.c
> index 01d35c4..86c6eeb 100644
> --- a/src/filelock.c
> +++ b/src/filelock.c
> @@ -419,7 +419,9 @@ current_lock_owner (lock_info_type *owner, Lisp_Object lfname)
>         boot += 2;
>         FALLTHROUGH;
>       case ':':
> -      if (! c_isdigit (boot[0]))
> +      if (! c_isdigit (boot[0])
> +	  /* A negative number.  */
> +	  || (boot[0] == '-' && c_isdigit (boot[1])))
>   	return EINVAL;
>         boot_time = strtoimax (boot, &lfinfo_end, 10);
>         break;

Not quite.  I think it should be

diff --git a/src/filelock.c b/src/filelock.c
index 01d35c46726a..faa85a56628b 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -419,7 +419,9 @@ current_lock_owner (lock_info_type *owner, 
Lisp_Object lfname)
       boot += 2;
       FALLTHROUGH;
     case ':':
-      if (! c_isdigit (boot[0]))
+      if (! (c_isdigit (boot[0])
+             /* A negative number.  */
+             || (boot[0] == '-' && c_isdigit (boot[1]))))
        return EINVAL;
       boot_time = strtoimax (boot, &lfinfo_end, 10);
       break;




This bug report was last modified 1 year and 73 days ago.

Previous Next


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