xattr: fix listing EAs on *BSD for non-root users
authorJeremy Allison <jra@samba.org>
Tue, 12 Nov 2013 20:17:26 +0000 (12:17 -0800)
committerKarolin Seeger <kseeger@samba.org>
Wed, 13 Nov 2013 07:56:31 +0000 (08:56 +0100)
Thanks to Stefan Rompf for reporting.

This fixes bug #10247

Back-ported to 3.6.next from master commit 374b2cfde74e0c61f4b2da724b30d0e430596092

Signed-off-by: Bjoern Jacke <bj@sernet.de>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/lib/system.c

index 1ca2f5e82ce51d4a70c80895e87d357b565781ca..d0e34bc20e598002e81d3c0799e20db65d99f355 100644 (file)
@@ -1801,6 +1801,10 @@ static ssize_t bsd_attr_list (int type, extattr_arg arg, char *list, size_t size
        char *buf;
        /* Iterate through extattr(2) namespaces */
        for(t = 0; t < (sizeof(extattr)/sizeof(extattr[0])); t++) {
+               if (t != EXTATTR_NAMESPACE_USER && geteuid() != 0) {
+                       /* ignore all but user namespace when we are not root, see bug 10247 */
+                       continue;
+               }
                switch(type) {
 #if defined(HAVE_EXTATTR_LIST_FILE)
                        case 0: