diff options
| -rw-r--r-- | drivers/nvmem/core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 6fd4e5a5ef4a..9d11d9837312 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c | |||
| @@ -70,6 +70,9 @@ static ssize_t bin_attr_nvmem_read(struct file *filp, struct kobject *kobj, | |||
| 70 | if (pos >= nvmem->size) | 70 | if (pos >= nvmem->size) |
| 71 | return 0; | 71 | return 0; |
| 72 | 72 | ||
| 73 | if (count < nvmem->word_size) | ||
| 74 | return -EINVAL; | ||
| 75 | |||
| 73 | if (pos + count > nvmem->size) | 76 | if (pos + count > nvmem->size) |
| 74 | count = nvmem->size - pos; | 77 | count = nvmem->size - pos; |
| 75 | 78 | ||
| @@ -95,6 +98,9 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj, | |||
| 95 | if (pos >= nvmem->size) | 98 | if (pos >= nvmem->size) |
| 96 | return 0; | 99 | return 0; |
| 97 | 100 | ||
| 101 | if (count < nvmem->word_size) | ||
| 102 | return -EINVAL; | ||
| 103 | |||
| 98 | if (pos + count > nvmem->size) | 104 | if (pos + count > nvmem->size) |
| 99 | count = nvmem->size - pos; | 105 | count = nvmem->size - pos; |
| 100 | 106 | ||
