From 6cb2eeaa5c08d176d23410790e530a00c0e15ae7 Mon Sep 17 00:00:00 2001
From: Joe Marcus Clarke <marcus@FreeBSD.org>
Date: Tue, 27 May 2014 16:41:50 +0000
Subject: Fix some potential segfaults on amd64 as well as misuse of APIs with
 respect to their counterparts on Linux.

Submitted by:   Sean Fagan <sef@ixsystems.com>
---
 net/netatalk3/Makefile                               |  2 +-
 net/netatalk3/files/patch-libatalk_adouble_ad_open.c | 11 +++++++++++
 net/netatalk3/files/patch-libatalk_vfs_extattr.c     | 15 ++++++++++++---
 3 files changed, 24 insertions(+), 4 deletions(-)
 create mode 100644 net/netatalk3/files/patch-libatalk_adouble_ad_open.c

(limited to 'net')

diff --git a/net/netatalk3/Makefile b/net/netatalk3/Makefile
index d5741b9ca052..b2182e2df0c7 100644
--- a/net/netatalk3/Makefile
+++ b/net/netatalk3/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	netatalk
 PORTVERSION=	3.1.1
-PORTREVISION=	1
+PORTREVISION=	2
 PORTEPOCH=	1
 CATEGORIES=	net
 MASTER_SITES=	SF
diff --git a/net/netatalk3/files/patch-libatalk_adouble_ad_open.c b/net/netatalk3/files/patch-libatalk_adouble_ad_open.c
new file mode 100644
index 000000000000..8f1b75bc0ebb
--- /dev/null
+++ b/net/netatalk3/files/patch-libatalk_adouble_ad_open.c
@@ -0,0 +1,11 @@
+--- libatalk/adouble/ad_open.c.orig	2014-05-27 12:33:15.000000000 -0400
++++ libatalk/adouble/ad_open.c	2014-05-27 12:34:00.000000000 -0400
+@@ -586,7 +586,7 @@ static int ad_convert_osx(const char *pa
+ 
+     origlen = ad_getentryoff(ad, ADEID_RFORK) + ad_getentrylen(ad, ADEID_RFORK);
+ 
+-    map = mmap(NULL, origlen, PROT_WRITE, MAP_SHARED, ad_reso_fileno(ad), 0);
++    map = mmap(NULL, origlen, PROT_READ | PROT_WRITE, MAP_SHARED, ad_reso_fileno(ad), 0);
+     if (map == MAP_FAILED) {
+         LOG(log_error, logtype_ad, "mmap AppleDouble: %s\n", strerror(errno));
+         EC_FAIL;
diff --git a/net/netatalk3/files/patch-libatalk_vfs_extattr.c b/net/netatalk3/files/patch-libatalk_vfs_extattr.c
index bd131a104129..70e25e64aa45 100644
--- a/net/netatalk3/files/patch-libatalk_vfs_extattr.c
+++ b/net/netatalk3/files/patch-libatalk_vfs_extattr.c
@@ -1,6 +1,15 @@
---- 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,
+--- libatalk/vfs/extattr.c.orig	2013-10-18 07:57:33.000000000 -0400
++++ libatalk/vfs/extattr.c	2014-05-27 12:31:57.000000000 -0400
+@@ -193,6 +193,8 @@ ssize_t sys_fgetxattr (int filedes, cons
+     const char *attrname = ((s=strchr(name, '.')) == NULL) ? name : s + 1;
+ 
+     if((retval=extattr_get_fd(filedes, attrnamespace, attrname, NULL, 0)) >= 0) {
++	if (size == 0)
++	    return retval;
+         if(retval > size) {
+             errno = ERANGE;
+             return -1;
+@@ -241,6 +243,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) {
-- 
cgit debian/1.2.3+git2.25.1-1-2-gaceb0