fs/readdir.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fs/readdir.c b/fs/readdir.c index 19bea591c3f1..d49c4e2c66a8 100644 --- a/fs/readdir.c +++ b/fs/readdir.c @@ -76,6 +76,15 @@ unsafe_put_user(0, dst, label); \ } while (0) +/* Alpha (and sparc?) test patch! */ +#undef unsafe_copy_dirent_name +#define unsafe_copy_dirent_name(_dst, _src, _len, label) do { \ + char __user *dst = (_dst); \ + const char *src = (_src); \ + size_t len = (_len); \ + if (__copy_to_user(dst, src, len)) goto label; \ + unsafe_put_user(0, dst+len, label); \ +} while (0) int iterate_dir(struct file *file, struct dir_context *ctx) {