diff options
author | Duane Griffin <duaneg@dghda.com> | 2008-12-19 21:47:11 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-01-01 00:07:38 +0100 |
commit | 035146851cfa2fe24c1d9dc7637bb009ad06b2f7 (patch) | |
tree | b6dd89c60a2100e1c0c48abd1688d3d2ff5f5607 | |
parent | eCryptfs: check readlink result was not an error before using it (diff) | |
download | linux-035146851cfa2fe24c1d9dc7637bb009ad06b2f7.tar.xz linux-035146851cfa2fe24c1d9dc7637bb009ad06b2f7.zip |
vfs: introduce helper function to safely NUL-terminate symlinks
A number of filesystems were potentially triggering kernel bugs due to
corrupted symlink names on disk. This function helps safely terminate
the names.
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Duane Griffin <duaneg@dghda.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | include/linux/namei.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/namei.h b/include/linux/namei.h index 99eb80306dc5..fc2e03579877 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h @@ -94,4 +94,9 @@ static inline char *nd_get_link(struct nameidata *nd) return nd->saved_names[nd->depth]; } +static inline void nd_terminate_link(void *name, size_t len, size_t maxlen) +{ + ((char *) name)[min(len, maxlen)] = '\0'; +} + #endif /* _LINUX_NAMEI_H */ |