|
@@ -423,15 +423,12 @@ struct request_sock;
|
|
|
* identified by @name for @dentry.
|
|
|
* Return 0 if permission is granted.
|
|
|
* @inode_getsecurity:
|
|
|
- * Copy the extended attribute representation of the security label
|
|
|
- * associated with @name for @inode into @buffer. @buffer may be
|
|
|
- * NULL to request the size of the buffer required. @size indicates
|
|
|
- * the size of @buffer in bytes. Note that @name is the remainder
|
|
|
- * of the attribute name after the security. prefix has been removed.
|
|
|
- * @err is the return value from the preceding fs getxattr call,
|
|
|
- * and can be used by the security module to determine whether it
|
|
|
- * should try and canonicalize the attribute value.
|
|
|
- * Return number of bytes used/required on success.
|
|
|
+ * Retrieve a copy of the extended attribute representation of the
|
|
|
+ * security label associated with @name for @inode via @buffer. Note that
|
|
|
+ * @name is the remainder of the attribute name after the security prefix
|
|
|
+ * has been removed. @alloc is used to specify of the call should return a
|
|
|
+ * value via the buffer or just the value length Return size of buffer on
|
|
|
+ * success.
|
|
|
* @inode_setsecurity:
|
|
|
* Set the security label associated with @name for @inode from the
|
|
|
* extended attribute value @value. @size indicates the size of the
|
|
@@ -1304,7 +1301,7 @@ struct security_operations {
|
|
|
int (*inode_removexattr) (struct dentry *dentry, char *name);
|
|
|
int (*inode_need_killpriv) (struct dentry *dentry);
|
|
|
int (*inode_killpriv) (struct dentry *dentry);
|
|
|
- int (*inode_getsecurity)(const struct inode *inode, const char *name, void *buffer, size_t size, int err);
|
|
|
+ int (*inode_getsecurity)(const struct inode *inode, const char *name, void **buffer, bool alloc);
|
|
|
int (*inode_setsecurity)(struct inode *inode, const char *name, const void *value, size_t size, int flags);
|
|
|
int (*inode_listsecurity)(struct inode *inode, char *buffer, size_t buffer_size);
|
|
|
|
|
@@ -1565,7 +1562,7 @@ int security_inode_listxattr(struct dentry *dentry);
|
|
|
int security_inode_removexattr(struct dentry *dentry, char *name);
|
|
|
int security_inode_need_killpriv(struct dentry *dentry);
|
|
|
int security_inode_killpriv(struct dentry *dentry);
|
|
|
-int security_inode_getsecurity(const struct inode *inode, const char *name, void *buffer, size_t size, int err);
|
|
|
+int security_inode_getsecurity(const struct inode *inode, const char *name, void **buffer, bool alloc);
|
|
|
int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags);
|
|
|
int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size);
|
|
|
int security_file_permission(struct file *file, int mask);
|
|
@@ -1967,7 +1964,7 @@ static inline int security_inode_killpriv(struct dentry *dentry)
|
|
|
return cap_inode_killpriv(dentry);
|
|
|
}
|
|
|
|
|
|
-static inline int security_inode_getsecurity(const struct inode *inode, const char *name, void *buffer, size_t size, int err)
|
|
|
+static inline int security_inode_getsecurity(const struct inode *inode, const char *name, void **buffer, bool alloc)
|
|
|
{
|
|
|
return -EOPNOTSUPP;
|
|
|
}
|