All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][next] tty: Avoid the use of one-element arrays
@ 2020-07-16 18:08 Gustavo A. R. Silva
  2020-07-17  6:10 ` Jiri Slaby
  0 siblings, 1 reply; 6+ messages in thread
From: Gustavo A. R. Silva @ 2020-07-16 18:08 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Jiri Slaby; +Cc: linux-kernel, Gustavo A. R. Silva

One-element arrays are being deprecated[1]. Replace the one-element arrays
with simple value types 'char reserved_char' and 'compat_int_t reserved'[2],
once it seems these are just placeholders for alignment.

Also, while there, use the preferred form for passing a size of a struct.
The alternative form where struct name is spelled out hurts readability
and introduces an opportunity for a bug when the variable type is changed
but the corresponding sizeof that is passed as argument is not.

Lastly, fix the checkpatch.pl warnings below:

ERROR: code indent should use tabs where possible
+        char    reserved_char;$

WARNING: please, no spaces at the start of a line
+        char    reserved_char;$

ERROR: code indent should use tabs where possible
+        compat_int_t    reserved;$

WARNING: please, no spaces at the start of a line
+        compat_int_t    reserved;$

[1] https://github.com/KSPP/linux/issues/79
[2] https://github.com/KSPP/linux/issues/86

Tested-by: kernel test robot <lkp@intel.com>
Link: https://github.com/GustavoARSilva/linux-hardening/blob/master/cii/0-day/tty-20200716.md
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/tty/tty_io.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 5a6f36b391d9..505bcba5ee02 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -2683,7 +2683,7 @@ struct serial_struct32 {
         compat_int_t    baud_base;
         unsigned short  close_delay;
         char    io_type;
-        char    reserved_char[1];
+	char    reserved_char;
         compat_int_t    hub6;
         unsigned short  closing_wait; /* time to wait before closing */
         unsigned short  closing_wait2; /* no longer used... */
@@ -2691,7 +2691,7 @@ struct serial_struct32 {
         unsigned short  iomem_reg_shift;
         unsigned int    port_high;
      /* compat_ulong_t  iomap_base FIXME */
-        compat_int_t    reserved[1];
+	compat_int_t    reserved;
 };
 
 static int compat_tty_tiocsserial(struct tty_struct *tty,
@@ -2705,7 +2705,7 @@ static int compat_tty_tiocsserial(struct tty_struct *tty,
 	struct serial_struct v;
 	int flags;
 
-	if (copy_from_user(&v32, ss, sizeof(struct serial_struct32)))
+	if (copy_from_user(&v32, ss, sizeof(*ss)))
 		return -EFAULT;
 
 	memcpy(&v, &v32, offsetof(struct serial_struct32, iomem_base));
@@ -2743,7 +2743,7 @@ static int compat_tty_tiocgserial(struct tty_struct *tty,
 			0xfffffff : ptr_to_compat(v.iomem_base);
 		v32.iomem_reg_shift = v.iomem_reg_shift;
 		v32.port_high = v.port_high;
-		if (copy_to_user(ss, &v32, sizeof(struct serial_struct32)))
+		if (copy_to_user(ss, &v32, sizeof(v32)))
 			err = -EFAULT;
 	}
 	return err;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH][next] tty: Avoid the use of one-element arrays
  2020-07-16 18:08 [PATCH][next] tty: Avoid the use of one-element arrays Gustavo A. R. Silva
@ 2020-07-17  6:10 ` Jiri Slaby
  2020-07-22 18:24   ` Gustavo A. R. Silva
  0 siblings, 1 reply; 6+ messages in thread
From: Jiri Slaby @ 2020-07-17  6:10 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Greg Kroah-Hartman; +Cc: linux-kernel

On 16. 07. 20, 20:08, Gustavo A. R. Silva wrote:
> One-element arrays are being deprecated[1]. Replace the one-element arrays
> with simple value types 'char reserved_char' and 'compat_int_t reserved'[2],
> once it seems these are just placeholders for alignment.
> 
> Also, while there, use the preferred form for passing a size of a struct.
> The alternative form where struct name is spelled out hurts readability
> and introduces an opportunity for a bug when the variable type is changed
> but the corresponding sizeof that is passed as argument is not.
> 
> Lastly, fix the checkpatch.pl warnings below:
> 
> ERROR: code indent should use tabs where possible
> +        char    reserved_char;$
> 
> WARNING: please, no spaces at the start of a line
> +        char    reserved_char;$
> 
> ERROR: code indent should use tabs where possible
> +        compat_int_t    reserved;$
> 
> WARNING: please, no spaces at the start of a line
> +        compat_int_t    reserved;$

May I ask you to send a follow-up patch to fix the whole structure's
indentation?

> [1] https://github.com/KSPP/linux/issues/79
> [2] https://github.com/KSPP/linux/issues/86
> 
> Tested-by: kernel test robot <lkp@intel.com>
> Link: https://github.com/GustavoARSilva/linux-hardening/blob/master/cii/0-day/tty-20200716.md
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Acked-by: Jiri Slaby <jirislaby@kernel.org>

thanks,
-- 
js
suse labs

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH][next] tty: Avoid the use of one-element arrays
  2020-07-17  6:10 ` Jiri Slaby
@ 2020-07-22 18:24   ` Gustavo A. R. Silva
  2020-07-23  6:30     ` Jiri Slaby
  0 siblings, 1 reply; 6+ messages in thread
From: Gustavo A. R. Silva @ 2020-07-22 18:24 UTC (permalink / raw)
  To: Jiri Slaby, Gustavo A. R. Silva, Greg Kroah-Hartman; +Cc: linux-kernel



On 7/17/20 01:10, Jiri Slaby wrote:
> On 16. 07. 20, 20:08, Gustavo A. R. Silva wrote:
>> One-element arrays are being deprecated[1]. Replace the one-element arrays
>> with simple value types 'char reserved_char' and 'compat_int_t reserved'[2],
>> once it seems these are just placeholders for alignment.
>>
>> Also, while there, use the preferred form for passing a size of a struct.
>> The alternative form where struct name is spelled out hurts readability
>> and introduces an opportunity for a bug when the variable type is changed
>> but the corresponding sizeof that is passed as argument is not.
>>
>> Lastly, fix the checkpatch.pl warnings below:
>>
>> ERROR: code indent should use tabs where possible
>> +        char    reserved_char;$
>>
>> WARNING: please, no spaces at the start of a line
>> +        char    reserved_char;$
>>
>> ERROR: code indent should use tabs where possible
>> +        compat_int_t    reserved;$
>>
>> WARNING: please, no spaces at the start of a line
>> +        compat_int_t    reserved;$
> 
> May I ask you to send a follow-up patch to fix the whole structure's
> indentation?
> 

Hi Jiri,

Sure thing. I'll fix that up and send v2, shortly.

Thanks
--
Gustavo

>> [1] https://github.com/KSPP/linux/issues/79
>> [2] https://github.com/KSPP/linux/issues/86
>>
>> Tested-by: kernel test robot <lkp@intel.com>
>> Link: https://github.com/GustavoARSilva/linux-hardening/blob/master/cii/0-day/tty-20200716.md
>> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> 
> Acked-by: Jiri Slaby <jirislaby@kernel.org>
> 
> thanks,
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH][next] tty: Avoid the use of one-element arrays
  2020-07-22 18:24   ` Gustavo A. R. Silva
@ 2020-07-23  6:30     ` Jiri Slaby
  2020-07-23  8:32       ` Greg Kroah-Hartman
  0 siblings, 1 reply; 6+ messages in thread
From: Jiri Slaby @ 2020-07-23  6:30 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Gustavo A. R. Silva, Greg Kroah-Hartman; +Cc: linux-kernel

On 22. 07. 20, 20:24, Gustavo A. R. Silva wrote:
> 
> 
> On 7/17/20 01:10, Jiri Slaby wrote:
>> On 16. 07. 20, 20:08, Gustavo A. R. Silva wrote:
>>> One-element arrays are being deprecated[1]. Replace the one-element arrays
>>> with simple value types 'char reserved_char' and 'compat_int_t reserved'[2],
>>> once it seems these are just placeholders for alignment.
>>>
>>> Also, while there, use the preferred form for passing a size of a struct.
>>> The alternative form where struct name is spelled out hurts readability
>>> and introduces an opportunity for a bug when the variable type is changed
>>> but the corresponding sizeof that is passed as argument is not.
>>>
>>> Lastly, fix the checkpatch.pl warnings below:
>>>
>>> ERROR: code indent should use tabs where possible
>>> +        char    reserved_char;$
>>>
>>> WARNING: please, no spaces at the start of a line
>>> +        char    reserved_char;$
>>>
>>> ERROR: code indent should use tabs where possible
>>> +        compat_int_t    reserved;$
>>>
>>> WARNING: please, no spaces at the start of a line
>>> +        compat_int_t    reserved;$
>>
>> May I ask you to send a follow-up patch to fix the whole structure's
>> indentation?
>>
> 
> Hi Jiri,
> 
> Sure thing. I'll fix that up and send v2, shortly.

Hi,

by a follow-up patch I meant a separate patch. Looking at it once again,
I would do 3 patches:
1) remove [1] arrays
2) change sizeofs
3) fix white space

thanks,
-- 
js
suse labs

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH][next] tty: Avoid the use of one-element arrays
  2020-07-23  6:30     ` Jiri Slaby
@ 2020-07-23  8:32       ` Greg Kroah-Hartman
  2020-07-23 13:47         ` Gustavo A. R. Silva
  0 siblings, 1 reply; 6+ messages in thread
From: Greg Kroah-Hartman @ 2020-07-23  8:32 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: Gustavo A. R. Silva, Gustavo A. R. Silva, linux-kernel

On Thu, Jul 23, 2020 at 08:30:47AM +0200, Jiri Slaby wrote:
> On 22. 07. 20, 20:24, Gustavo A. R. Silva wrote:
> > 
> > 
> > On 7/17/20 01:10, Jiri Slaby wrote:
> >> On 16. 07. 20, 20:08, Gustavo A. R. Silva wrote:
> >>> One-element arrays are being deprecated[1]. Replace the one-element arrays
> >>> with simple value types 'char reserved_char' and 'compat_int_t reserved'[2],
> >>> once it seems these are just placeholders for alignment.
> >>>
> >>> Also, while there, use the preferred form for passing a size of a struct.
> >>> The alternative form where struct name is spelled out hurts readability
> >>> and introduces an opportunity for a bug when the variable type is changed
> >>> but the corresponding sizeof that is passed as argument is not.
> >>>
> >>> Lastly, fix the checkpatch.pl warnings below:
> >>>
> >>> ERROR: code indent should use tabs where possible
> >>> +        char    reserved_char;$
> >>>
> >>> WARNING: please, no spaces at the start of a line
> >>> +        char    reserved_char;$
> >>>
> >>> ERROR: code indent should use tabs where possible
> >>> +        compat_int_t    reserved;$
> >>>
> >>> WARNING: please, no spaces at the start of a line
> >>> +        compat_int_t    reserved;$
> >>
> >> May I ask you to send a follow-up patch to fix the whole structure's
> >> indentation?
> >>
> > 
> > Hi Jiri,
> > 
> > Sure thing. I'll fix that up and send v2, shortly.
> 
> Hi,
> 
> by a follow-up patch I meant a separate patch. Looking at it once again,
> I would do 3 patches:
> 1) remove [1] arrays
> 2) change sizeofs
> 3) fix white space

I agree, that would be the ideal series.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH][next] tty: Avoid the use of one-element arrays
  2020-07-23  8:32       ` Greg Kroah-Hartman
@ 2020-07-23 13:47         ` Gustavo A. R. Silva
  0 siblings, 0 replies; 6+ messages in thread
From: Gustavo A. R. Silva @ 2020-07-23 13:47 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Jiri Slaby; +Cc: Gustavo A. R. Silva, linux-kernel



On 7/23/20 03:32, Greg Kroah-Hartman wrote:
> On Thu, Jul 23, 2020 at 08:30:47AM +0200, Jiri Slaby wrote:
>> On 22. 07. 20, 20:24, Gustavo A. R. Silva wrote:
>>>
>>>
>>> On 7/17/20 01:10, Jiri Slaby wrote:
>>>> On 16. 07. 20, 20:08, Gustavo A. R. Silva wrote:
>>>>> One-element arrays are being deprecated[1]. Replace the one-element arrays
>>>>> with simple value types 'char reserved_char' and 'compat_int_t reserved'[2],
>>>>> once it seems these are just placeholders for alignment.
>>>>>
>>>>> Also, while there, use the preferred form for passing a size of a struct.
>>>>> The alternative form where struct name is spelled out hurts readability
>>>>> and introduces an opportunity for a bug when the variable type is changed
>>>>> but the corresponding sizeof that is passed as argument is not.
>>>>>
>>>>> Lastly, fix the checkpatch.pl warnings below:
>>>>>
>>>>> ERROR: code indent should use tabs where possible
>>>>> +        char    reserved_char;$
>>>>>
>>>>> WARNING: please, no spaces at the start of a line
>>>>> +        char    reserved_char;$
>>>>>
>>>>> ERROR: code indent should use tabs where possible
>>>>> +        compat_int_t    reserved;$
>>>>>
>>>>> WARNING: please, no spaces at the start of a line
>>>>> +        compat_int_t    reserved;$
>>>>
>>>> May I ask you to send a follow-up patch to fix the whole structure's
>>>> indentation?
>>>>
>>>
>>> Hi Jiri,
>>>
>>> Sure thing. I'll fix that up and send v2, shortly.
>>
>> Hi,
>>
>> by a follow-up patch I meant a separate patch. Looking at it once again,
>> I would do 3 patches:
>> 1) remove [1] arrays
>> 2) change sizeofs
>> 3) fix white space
> 
> I agree, that would be the ideal series.
> 

OK. No problem. I'll turn this into a patch series then. :)

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-07-23 13:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-16 18:08 [PATCH][next] tty: Avoid the use of one-element arrays Gustavo A. R. Silva
2020-07-17  6:10 ` Jiri Slaby
2020-07-22 18:24   ` Gustavo A. R. Silva
2020-07-23  6:30     ` Jiri Slaby
2020-07-23  8:32       ` Greg Kroah-Hartman
2020-07-23 13:47         ` Gustavo A. R. Silva

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.