[PATCH] Input: serio_raw - initialize serio_raw_write() the return code

Arnd Bergmann posted 1 patch 1 month ago
drivers/input/serio/serio_raw.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] Input: serio_raw - initialize serio_raw_write() the return code
Posted by Arnd Bergmann 1 month ago
From: Arnd Bergmann <arnd@arndb.de>

The number of bytes returned from the write function is now
undefined:

drivers/input/serio/serio_raw.c:204:12: error: variable 'written' is uninitialized when used here [-Werror,-Wuninitialized]
  204 |                                 return written ?: -EIO;
      |                                        ^~~~~~~

Fixes: 5b53a9d40c4f ("Input: serio_raw - use guard notation for locks and other resources")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202410201730.ItNhUTIv-lkp@intel.com/
Closes: https://lore.kernel.org/r/202410201759.qnyACw46-lkp@intel.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/input/serio/serio_raw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
index e058fef07f57..55fe77d04089 100644
--- a/drivers/input/serio/serio_raw.c
+++ b/drivers/input/serio/serio_raw.c
@@ -195,6 +195,7 @@ static ssize_t serio_raw_write(struct file *file, const char __user *buffer,
 		if (count > 32)
 			count = 32;
 
+		written = 0;
 		while (count--) {
 			if (get_user(c, buffer++))
 				return -EFAULT;
-- 
2.39.5
Re: [PATCH] Input: serio_raw - initialize serio_raw_write() the return code
Posted by Dmitry Torokhov 1 month ago
Hi Arnd,

On Mon, Oct 21, 2024 at 10:38:27AM +0000, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The number of bytes returned from the write function is now
> undefined:
> 
> drivers/input/serio/serio_raw.c:204:12: error: variable 'written' is uninitialized when used here [-Werror,-Wuninitialized]
>   204 |                                 return written ?: -EIO;
>       |                                        ^~~~~~~

Thank you for the patch but I already have one fixing this up queued.

> 
> Fixes: 5b53a9d40c4f ("Input: serio_raw - use guard notation for locks and other resources")
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <error27@gmail.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202410201730.ItNhUTIv-lkp@intel.com/
> Closes: https://lore.kernel.org/r/202410201759.qnyACw46-lkp@intel.com/
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/input/serio/serio_raw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
> index e058fef07f57..55fe77d04089 100644
> --- a/drivers/input/serio/serio_raw.c
> +++ b/drivers/input/serio/serio_raw.c
> @@ -195,6 +195,7 @@ static ssize_t serio_raw_write(struct file *file, const char __user *buffer,
>  		if (count > 32)
>  			count = 32;
>  
> +		written = 0;
>  		while (count--) {
>  			if (get_user(c, buffer++))
>  				return -EFAULT;
> -- 
> 2.39.5
> 

-- 
Dmitry