* Re: [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids()
2023-07-26 10:47 [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids() Dan Carpenter
@ 2023-07-26 12:56 ` Simon Horman
2023-07-26 12:59 ` Simon Horman
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Simon Horman @ 2023-07-26 12:56 UTC (permalink / raw)
To: dccp
On Wed, Jul 26, 2023 at 01:47:02PM +0300, Dan Carpenter wrote:
> This is allocating the ARRAY_SIZE() instead of the number of bytes. The
> array size is 1 or 2 depending on the .config and it should allocate
> 8 or 16 bytes instead.
>
> Fixes: ddebc973c56b ("dccp: Lockless integration of CCID congestion-control plugins")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids()
2023-07-26 10:47 [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids() Dan Carpenter
2023-07-26 12:56 ` Simon Horman
@ 2023-07-26 12:59 ` Simon Horman
2023-07-26 13:45 ` Dan Carpenter
2023-07-27 11:24 ` Simon Horman
3 siblings, 0 replies; 5+ messages in thread
From: Simon Horman @ 2023-07-26 12:59 UTC (permalink / raw)
To: dccp
On Wed, Jul 26, 2023 at 02:56:01PM +0200, Simon Horman wrote:
> On Wed, Jul 26, 2023 at 01:47:02PM +0300, Dan Carpenter wrote:
> > This is allocating the ARRAY_SIZE() instead of the number of bytes. The
> > array size is 1 or 2 depending on the .config and it should allocate
> > 8 or 16 bytes instead.
> >
> > Fixes: ddebc973c56b ("dccp: Lockless integration of CCID congestion-control plugins")
> > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
>
> Reviewed-by: Simon Horman <simon.horman@corigine.com>
Sorry, I was a bit hasty there.
> > --- a/net/dccp/ccid.c
> > +++ b/net/dccp/ccid.c
> > @@ -48,7 +48,8 @@ bool ccid_support_check(u8 const *ccid_array, u8 array_len)
> > */
> > int ccid_get_builtin_ccids(u8 **ccid_array, u8 *array_len)
> > {
> > - *ccid_array = kmalloc(ARRAY_SIZE(ccids), gfp_any());
> > + *ccid_array = kmalloc_array(ARRAY_SIZE(ccids), sizeof(*ccid_array),
> > + gfp_any());
The type of *ccid_array is u8.
But shouldn't this be something more like sizeof(struct ccid_operations)
or sizeof(ccids[0]) ?
> > if (*ccid_array = NULL)
> > return -ENOBUFS;
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids()
2023-07-26 10:47 [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids() Dan Carpenter
2023-07-26 12:56 ` Simon Horman
2023-07-26 12:59 ` Simon Horman
@ 2023-07-26 13:45 ` Dan Carpenter
2023-07-27 11:24 ` Simon Horman
3 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2023-07-26 13:45 UTC (permalink / raw)
To: dccp
On Wed, Jul 26, 2023 at 03:00:37PM +0200, Simon Horman wrote:
> On Wed, Jul 26, 2023 at 02:56:01PM +0200, Simon Horman wrote:
> > On Wed, Jul 26, 2023 at 01:47:02PM +0300, Dan Carpenter wrote:
> > > This is allocating the ARRAY_SIZE() instead of the number of bytes. The
> > > array size is 1 or 2 depending on the .config and it should allocate
> > > 8 or 16 bytes instead.
> > >
> > > Fixes: ddebc973c56b ("dccp: Lockless integration of CCID congestion-control plugins")
> > > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> >
> > Reviewed-by: Simon Horman <simon.horman@corigine.com>
>
> Sorry, I was a bit hasty there.
>
> > > --- a/net/dccp/ccid.c
> > > +++ b/net/dccp/ccid.c
> > > @@ -48,7 +48,8 @@ bool ccid_support_check(u8 const *ccid_array, u8 array_len)
> > > */
> > > int ccid_get_builtin_ccids(u8 **ccid_array, u8 *array_len)
> > > {
> > > - *ccid_array = kmalloc(ARRAY_SIZE(ccids), gfp_any());
> > > + *ccid_array = kmalloc_array(ARRAY_SIZE(ccids), sizeof(*ccid_array),
> > > + gfp_any());
>
> The type of *ccid_array is u8.
> But shouldn't this be something more like sizeof(struct ccid_operations)
> or sizeof(ccids[0]) ?
Aw crud. Actually the code is fine isn't it. I thought it was saving
pointers but actually it's saving char. *Embarrassing*.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids()
2023-07-26 10:47 [PATCH net] dccp: Allocate enough data in ccid_get_builtin_ccids() Dan Carpenter
` (2 preceding siblings ...)
2023-07-26 13:45 ` Dan Carpenter
@ 2023-07-27 11:24 ` Simon Horman
3 siblings, 0 replies; 5+ messages in thread
From: Simon Horman @ 2023-07-27 11:24 UTC (permalink / raw)
To: dccp
On Wed, Jul 26, 2023 at 04:45:03PM +0300, Dan Carpenter wrote:
> On Wed, Jul 26, 2023 at 03:00:37PM +0200, Simon Horman wrote:
> > On Wed, Jul 26, 2023 at 02:56:01PM +0200, Simon Horman wrote:
> > > On Wed, Jul 26, 2023 at 01:47:02PM +0300, Dan Carpenter wrote:
> > > > This is allocating the ARRAY_SIZE() instead of the number of bytes. The
> > > > array size is 1 or 2 depending on the .config and it should allocate
> > > > 8 or 16 bytes instead.
> > > >
> > > > Fixes: ddebc973c56b ("dccp: Lockless integration of CCID congestion-control plugins")
> > > > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> > >
> > > Reviewed-by: Simon Horman <simon.horman@corigine.com>
> >
> > Sorry, I was a bit hasty there.
> >
> > > > --- a/net/dccp/ccid.c
> > > > +++ b/net/dccp/ccid.c
> > > > @@ -48,7 +48,8 @@ bool ccid_support_check(u8 const *ccid_array, u8 array_len)
> > > > */
> > > > int ccid_get_builtin_ccids(u8 **ccid_array, u8 *array_len)
> > > > {
> > > > - *ccid_array = kmalloc(ARRAY_SIZE(ccids), gfp_any());
> > > > + *ccid_array = kmalloc_array(ARRAY_SIZE(ccids), sizeof(*ccid_array),
> > > > + gfp_any());
> >
> > The type of *ccid_array is u8.
> > But shouldn't this be something more like sizeof(struct ccid_operations)
> > or sizeof(ccids[0]) ?
>
> Aw crud. Actually the code is fine isn't it. I thought it was saving
> pointers but actually it's saving char. *Embarrassing*.
Yeah, looking at this with fresh eyes, I see that you are right.
Let's drop this one.
--
pw-bot: rejected
^ permalink raw reply [flat|nested] 5+ messages in thread