diff options
Diffstat (limited to 'drivers/staging/android/logger.c')
| -rw-r--r-- | drivers/staging/android/logger.c | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/android/logger.c b/drivers/staging/android/logger.c index d42f5785f09..2772e01b37f 100644 --- a/drivers/staging/android/logger.c +++ b/drivers/staging/android/logger.c @@ -108,6 +108,7 @@ static inline struct logger_log *file_get_log(struct file *file)  {  	if (file->f_mode & FMODE_READ) {  		struct logger_reader *reader = file->private_data; +  		return reader->log;  	} else  		return file->private_data; @@ -124,6 +125,7 @@ static struct logger_entry *get_entry_header(struct logger_log *log,  		size_t off, struct logger_entry *scratch)  {  	size_t len = min(sizeof(struct logger_entry), log->size - off); +  	if (len != sizeof(struct logger_entry)) {  		memcpy(((void *) scratch), log->buffer + off, len);  		memcpy(((void *) scratch) + len, log->buffer, @@ -642,6 +644,7 @@ static unsigned int logger_poll(struct file *file, poll_table *wait)  static long logger_set_version(struct logger_reader *reader, void __user *arg)  {  	int version; +  	if (copy_from_user(&version, arg, sizeof(int)))  		return -EFAULT;  | 
