summaryrefslogtreecommitdiff
path: root/fs/compat.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-10 16:05:45 +0400
committerIngo Molnar <mingo@elte.hu>2008-09-10 16:05:45 +0400
commit3ce9bcb583536c45a46c7302747029450e22279c (patch)
tree7a4167189ffc6dc909151d1a5d040f9f0656a9f4 /fs/compat.c
parent26fd10517e810dd59ea050b052de24a75ee6dc07 (diff)
parentf7d0b926ac8c8ec0c7a83ee69409bd2e6bb39f81 (diff)
downloadlinux-3ce9bcb583536c45a46c7302747029450e22279c.tar.xz
Merge branch 'core/xen' into x86/xen
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/compat.c b/fs/compat.c
index c9d1472e65c5..075d0509970d 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -792,8 +792,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen,
if (buf->result)
return -EINVAL;
d_ino = ino;
- if (sizeof(d_ino) < sizeof(ino) && d_ino != ino)
+ if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
+ buf->result = -EOVERFLOW;
return -EOVERFLOW;
+ }
buf->result++;
dirent = buf->dirent;
if (!access_ok(VERIFY_WRITE, dirent,
@@ -862,8 +864,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen,
if (reclen > buf->count)
return -EINVAL;
d_ino = ino;
- if (sizeof(d_ino) < sizeof(ino) && d_ino != ino)
+ if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
+ buf->error = -EOVERFLOW;
return -EOVERFLOW;
+ }
dirent = buf->previous;
if (dirent) {
if (__put_user(offset, &dirent->d_off))