diff options
| author | Robert Richter <robert.richter@amd.com> | 2008-09-24 11:25:31 +0200 |
|---|---|---|
| committer | Robert Richter <robert.richter@amd.com> | 2008-09-24 11:25:31 +0200 |
| commit | f78e80209cf143be49f268c340431ae9fa3abb74 (patch) | |
| tree | 820fa64b688099dfdd93d27ba03252738ca5c7e2 /fs/readdir.c | |
| parent | 4c168eaf7ea39f25a45a3d8c7eebc3fedb633a1d (diff) | |
| parent | 24342c34a022ee90839873d91396045e12ef1090 (diff) | |
Merge commit 'v2.6.27-rc5' into tip/oprofile
Conflicts:
arch/x86/oprofile/nmi_int.c
Diffstat (limited to 'fs/readdir.c')
| -rw-r--r-- | fs/readdir.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/readdir.c b/fs/readdir.c index 4e026e5407fb..93a7559bbfd8 100644 --- a/fs/readdir.c +++ b/fs/readdir.c @@ -80,8 +80,10 @@ static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset 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, @@ -155,8 +157,10 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, 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)) |
