]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge commit 'refs/next/20110809/security-testing'
authorStephen Rothwell <sfr@canb.auug.org.au>
Fri, 12 Aug 2011 02:45:47 +0000 (12:45 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 12 Aug 2011 02:45:49 +0000 (12:45 +1000)
1  2 
fs/cifs/xattr.c

diff --cc fs/cifs/xattr.c
index 2a22fb2989e4780fd977c683b27ddf23e78e7d8e,2a22fb2989e4780fd977c683b27ddf23e78e7d8e..c323088821485c226db0e0c0cb72f22f36370a7b
@@@ -22,6 -22,6 +22,7 @@@
  #include <linux/fs.h>
  #include <linux/posix_acl_xattr.h>
  #include <linux/slab.h>
++#include <linux/xattr.h>
  #include "cifsfs.h"
  #include "cifspdu.h"
  #include "cifsglob.h"
  #define MAX_EA_VALUE_SIZE 65535
  #define CIFS_XATTR_DOS_ATTRIB "user.DosAttrib"
  #define CIFS_XATTR_CIFS_ACL "system.cifs_acl"
--#define CIFS_XATTR_USER_PREFIX "user."
--#define CIFS_XATTR_SYSTEM_PREFIX "system."
--#define CIFS_XATTR_OS2_PREFIX "os2."
--#define CIFS_XATTR_SECURITY_PREFIX "security."
--#define CIFS_XATTR_TRUSTED_PREFIX "trusted."
--#define XATTR_TRUSTED_PREFIX_LEN  8
--#define XATTR_SECURITY_PREFIX_LEN 9
--/* BB need to add server (Samba e.g) support for security and trusted prefix */
--
  
++/* BB need to add server (Samba e.g) support for security and trusted prefix */
  
  int cifs_removexattr(struct dentry *direntry, const char *ea_name)
  {
@@@ -76,8 -76,8 +69,8 @@@
        }
        if (ea_name == NULL) {
                cFYI(1, "Null xattr names not supported");
--      } else if (strncmp(ea_name, CIFS_XATTR_USER_PREFIX, 5)
--              && (strncmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4))) {
++      } else if (strncmp(ea_name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)
++              && (strncmp(ea_name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN))) {
                cFYI(1,
                     "illegal xattr request %s (only user namespace supported)",
                     ea_name);
@@@ -88,7 -88,7 +81,7 @@@
                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
                        goto remove_ea_exit;
  
--              ea_name += 5; /* skip past user. prefix */
++              ea_name += XATTR_USER_PREFIX_LEN; /* skip past user. prefix */
                rc = CIFSSMBSetEA(xid, pTcon, full_path, ea_name, NULL,
                        (__u16)0, cifs_sb->local_nls,
                        cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
@@@ -149,21 -149,21 +142,23 @@@ int cifs_setxattr(struct dentry *dirent
  
        if (ea_name == NULL) {
                cFYI(1, "Null xattr names not supported");
--      } else if (strncmp(ea_name, CIFS_XATTR_USER_PREFIX, 5) == 0) {
++      } else if (strncmp(ea_name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)
++                 == 0) {
                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
                        goto set_ea_exit;
                if (strncmp(ea_name, CIFS_XATTR_DOS_ATTRIB, 14) == 0)
                        cFYI(1, "attempt to set cifs inode metadata");
  
--              ea_name += 5; /* skip past user. prefix */
++              ea_name += XATTR_USER_PREFIX_LEN; /* skip past user. prefix */
                rc = CIFSSMBSetEA(xid, pTcon, full_path, ea_name, ea_value,
                        (__u16)value_size, cifs_sb->local_nls,
                        cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
--      } else if (strncmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4) == 0) {
++      } else if (strncmp(ea_name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN)
++                 == 0) {
                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
                        goto set_ea_exit;
  
--              ea_name += 4; /* skip past os2. prefix */
++              ea_name += XATTR_OS2_PREFIX_LEN; /* skip past os2. prefix */
                rc = CIFSSMBSetEA(xid, pTcon, full_path, ea_name, ea_value,
                        (__u16)value_size, cifs_sb->local_nls,
                        cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
@@@ -269,7 -269,7 +264,8 @@@ ssize_t cifs_getxattr(struct dentry *di
        /* return alt name if available as pseudo attr */
        if (ea_name == NULL) {
                cFYI(1, "Null xattr names not supported");
--      } else if (strncmp(ea_name, CIFS_XATTR_USER_PREFIX, 5) == 0) {
++      } else if (strncmp(ea_name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)
++                 == 0) {
                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
                        goto get_ea_exit;
  
                        cFYI(1, "attempt to query cifs inode metadata");
                        /* revalidate/getattr then populate from inode */
                } /* BB add else when above is implemented */
--              ea_name += 5; /* skip past user. prefix */
++              ea_name += XATTR_USER_PREFIX_LEN; /* skip past user. prefix */
                rc = CIFSSMBQAllEAs(xid, pTcon, full_path, ea_name, ea_value,
                        buf_size, cifs_sb->local_nls,
                        cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
--      } else if (strncmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4) == 0) {
++      } else if (strncmp(ea_name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) {
                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
                        goto get_ea_exit;
  
--              ea_name += 4; /* skip past os2. prefix */
++              ea_name += XATTR_OS2_PREFIX_LEN; /* skip past os2. prefix */
                rc = CIFSSMBQAllEAs(xid, pTcon, full_path, ea_name, ea_value,
                        buf_size, cifs_sb->local_nls,
                        cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
                cFYI(1, "Query CIFS ACL not supported yet");
  #endif /* CONFIG_CIFS_ACL */
        } else if (strncmp(ea_name,
--                CIFS_XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) == 0) {
++                XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) == 0) {
                cFYI(1, "Trusted xattr namespace not supported yet");
        } else if (strncmp(ea_name,
--                CIFS_XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) == 0) {
++                XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) == 0) {
                cFYI(1, "Security xattr namespace not supported yet");
        } else
                cFYI(1,