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