Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fix error in ad_openat(), bug #532

Saving from Word to a folder that is a symlink to a folder on another filesystem
results in a crash of the afpd process and the save to fail. This happens only
if the option "follow symlinks" is enabled.
  • Loading branch information...
commit 79f0b2fd2a896fc700bdf50e75e0b4deaf126580 1 parent 418235a
slowfranklin slowfranklin authored
Showing with 9 additions and 1 deletion.
  1. +4 −0 NEWS
  2. +5 −1 libatalk/adouble/ad_open.c
4 NEWS
View
@@ -11,6 +11,10 @@ Changes in 3.0.6
* FIX: Small fix in the DSI tickle handling. Bug #528.
* UPD: Enhance handling of connection attempts when hitting the
connection limit. Bug #529.
+* FIX: Saving from Word to a folder that is a symlink to a folder on
+ another filesystem results in a crash of the afpd process and
+ the save to fail. This happens only if the option
+ "follow symlinks" is enabled. Bug #532.
Changes in 3.0.5
================
6 libatalk/adouble/ad_open.c
View
@@ -1897,10 +1897,12 @@ int ad_openat(struct adouble *ad,
mode_t mode = 0;
if (dirfd != -1) {
- if ((cwdfd = open(".", O_RDONLY) == -1) || (fchdir(dirfd) != 0))
+ if (((cwdfd = open(".", O_RDONLY)) == -1) || (fchdir(dirfd) != 0))
EC_FAIL;
}
+ LOG(log_note, logtype_ad, "ad_openat: cwdfd: %d", cwdfd);
+
va_start(args, adflags);
if (adflags & ADFLAGS_CREATE)
mode = (sizeof(mode_t) < sizeof(int) ? va_arg (args, int) : va_arg (args, mode_t));
@@ -1908,6 +1910,8 @@ int ad_openat(struct adouble *ad,
EC_NEG1( ad_open(ad, path, adflags, mode) );
+ LOG(log_note, logtype_ad, "ad_openat: cwdfd: %d", cwdfd);
+
if (dirfd != -1) {
if (fchdir(cwdfd) != 0) {
AFP_PANIC("ad_openat: cant chdir back");
Please sign in to comment.
Something went wrong with that request. Please try again.