From 751d64025f67454ddca1af36509e74a9462f0397 Mon Sep 17 00:00:00 2001 From: Joe Marcus Clarke <marcus@FreeBSD.org> Date: Fri, 9 May 2014 17:51:27 +0000 Subject: Fix the behavior of sys_lgetxattr() so that it mimics that of Linux where a size argument of 0 will return the required size of the extended attribute. Submitted by: Sean Eric Fagan <sef@Kithrup.COM> --- net/netatalk3/Makefile | 1 + net/netatalk3/files/patch-libatalk_vfs_extattr.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 net/netatalk3/files/patch-libatalk_vfs_extattr.c diff --git a/net/netatalk3/Makefile b/net/netatalk3/Makefile index f6d0610ed4c2..d5741b9ca052 100644 --- a/net/netatalk3/Makefile +++ b/net/netatalk3/Makefile @@ -3,6 +3,7 @@ PORTNAME= netatalk PORTVERSION= 3.1.1 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= net MASTER_SITES= SF diff --git a/net/netatalk3/files/patch-libatalk_vfs_extattr.c b/net/netatalk3/files/patch-libatalk_vfs_extattr.c new file mode 100644 index 000000000000..bd131a104129 --- /dev/null +++ b/net/netatalk3/files/patch-libatalk_vfs_extattr.c @@ -0,0 +1,13 @@ +--- libatalk/vfs/extattr.c.orig 2014-05-09 13:42:40.000000000 -0400 ++++ libatalk/vfs/extattr.c 2014-05-09 13:45:39.000000000 -0400 +@@ -241,6 +241,10 @@ ssize_t sys_lgetxattr (const char *path, + #elif defined(HAVE_EXTATTR_GET_LINK) + ssize_t retval; + if((retval=extattr_get_link(path, EXTATTR_NAMESPACE_USER, uname, NULL, 0)) >= 0) { ++ if (size == 0) { ++ /* size == 0 means only return size */ ++ return retval; ++ } + if(retval > size) { + errno = ERANGE; + return -1; -- cgit debian/1.2.3+git2.25.1-1-2-gaceb0