Work around macOS faccessat bug
* src/fileio.c (file_accessible_directory_p): Append an extra "/" to work around macOS bug in faccessat (Bug#30350).
This commit is contained in:
parent
8e42b1bd3c
commit
5c414441ed
1 changed files with 8 additions and 5 deletions
13
src/fileio.c
13
src/fileio.c
|
@ -2811,12 +2811,15 @@ file_accessible_directory_p (Lisp_Object file)
|
|||
dir = data;
|
||||
else
|
||||
{
|
||||
/* Just check for trailing '/' when deciding whether to append '/'.
|
||||
That's simpler than testing the two special cases "/" and "//",
|
||||
and it's a safe optimization here. */
|
||||
char *buf = SAFE_ALLOCA (len + 3);
|
||||
/* Just check for trailing '/' when deciding whether append '/'
|
||||
before appending '.'. That's simpler than testing the two
|
||||
special cases "/" and "//", and it's a safe optimization
|
||||
here. After appending '.', append another '/' to work around
|
||||
a macOS bug (Bug#30350). */
|
||||
static char const appended[] = "/./";
|
||||
char *buf = SAFE_ALLOCA (len + sizeof appended);
|
||||
memcpy (buf, data, len);
|
||||
strcpy (buf + len, &"/."[data[len - 1] == '/']);
|
||||
strcpy (buf + len, &appended[data[len - 1] == '/']);
|
||||
dir = buf;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue