diff options
author | Linus Torvalds | 2016-05-25 15:54:35 -0700 |
---|---|---|
committer | Linus Torvalds | 2016-05-25 15:54:35 -0700 |
commit | 55c1c7b2b66e3011f981d81aaf21fa810935908a (patch) | |
tree | aa3ddd06f7b0224236b64661c15d6b304abcc58c | |
parent | e92677dfce88b96ade9100c77eb3f76d98d29d74 (diff) | |
parent | 0040773bff7b585fc948565a0558e5a6a4680e96 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs xattr regression fixes from Al Viro.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
make xattr_resolve_handlers() safe to use with NULL ->s_xattr
xattr: Fail with -EINVAL for NULL attribute names
-rw-r--r-- | fs/xattr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xattr.c b/fs/xattr.c index b11945e15fde..fc81e771488a 100644 --- a/fs/xattr.c +++ b/fs/xattr.c @@ -655,6 +655,7 @@ strcmp_prefix(const char *a, const char *a_prefix) * operations to the correct xattr_handler. */ #define for_each_xattr_handler(handlers, handler) \ + if (handlers) \ for ((handler) = *(handlers)++; \ (handler) != NULL; \ (handler) = *(handlers)++) @@ -668,7 +669,7 @@ xattr_resolve_name(const struct xattr_handler **handlers, const char **name) const struct xattr_handler *handler; if (!*name) - return NULL; + return ERR_PTR(-EINVAL); for_each_xattr_handler(handlers, handler) { const char *n; |