diff options
Diffstat (limited to 'fs/nfsd/nfsxdr.c')
-rw-r--r-- | fs/nfsd/nfsxdr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c index cb3e7fadb772..986f9b32083c 100644 --- a/fs/nfsd/nfsxdr.c +++ b/fs/nfsd/nfsxdr.c | |||
@@ -523,6 +523,10 @@ nfssvc_encode_entry(void *ccdv, const char *name, | |||
523 | cd->common.err = nfserr_toosmall; | 523 | cd->common.err = nfserr_toosmall; |
524 | return -EINVAL; | 524 | return -EINVAL; |
525 | } | 525 | } |
526 | if (ino > ~((u32) 0)) { | ||
527 | cd->common.err = nfserr_fbig; | ||
528 | return -EINVAL; | ||
529 | } | ||
526 | *p++ = xdr_one; /* mark entry present */ | 530 | *p++ = xdr_one; /* mark entry present */ |
527 | *p++ = htonl((u32) ino); /* file id */ | 531 | *p++ = htonl((u32) ino); /* file id */ |
528 | p = xdr_encode_array(p, name, namlen);/* name length & name */ | 532 | p = xdr_encode_array(p, name, namlen);/* name length & name */ |