summaryrefslogtreecommitdiff
path: root/net/netatalk3/files/patch-libatalk_vfs_extattr.c
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2014-05-27 16:41:50 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2014-05-27 16:41:50 +0000
commit6cb2eeaa5c08d176d23410790e530a00c0e15ae7 (patch)
tree46f2ce0dd85768a1833429c92571d588423bd746 /net/netatalk3/files/patch-libatalk_vfs_extattr.c
parentUse libtool and strip shared library (diff)
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>
Diffstat (limited to 'net/netatalk3/files/patch-libatalk_vfs_extattr.c')
-rw-r--r--net/netatalk3/files/patch-libatalk_vfs_extattr.c15
1 files changed, 12 insertions, 3 deletions
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) {