diff options
| -rw-r--r-- | fs/nfsd/nfsctl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c index bc22e0b0343a..8516137cdbb0 100644 --- a/fs/nfsd/nfsctl.c +++ b/fs/nfsd/nfsctl.c | |||
| @@ -304,6 +304,9 @@ static ssize_t write_filehandle(struct file *file, char *buf, size_t size) | |||
| 304 | struct auth_domain *dom; | 304 | struct auth_domain *dom; |
| 305 | struct knfsd_fh fh; | 305 | struct knfsd_fh fh; |
| 306 | 306 | ||
| 307 | if (size == 0) | ||
| 308 | return -EINVAL; | ||
| 309 | |||
| 307 | if (buf[size-1] != '\n') | 310 | if (buf[size-1] != '\n') |
| 308 | return -EINVAL; | 311 | return -EINVAL; |
| 309 | buf[size-1] = 0; | 312 | buf[size-1] = 0; |
| @@ -663,7 +666,7 @@ static ssize_t write_recoverydir(struct file *file, char *buf, size_t size) | |||
| 663 | char *recdir; | 666 | char *recdir; |
| 664 | int len, status; | 667 | int len, status; |
| 665 | 668 | ||
| 666 | if (size > PATH_MAX || buf[size-1] != '\n') | 669 | if (size == 0 || size > PATH_MAX || buf[size-1] != '\n') |
| 667 | return -EINVAL; | 670 | return -EINVAL; |
| 668 | buf[size-1] = 0; | 671 | buf[size-1] = 0; |
| 669 | 672 | ||
