diff mbox series

[iproute2-next,v2] dcb: Fix compilation warning about reallocarray

Message ID 20210222121030.2109-1-roid@nvidia.com (mailing list archive)
State Accepted
Delegated to: Stephen Hemminger
Headers show
Series [iproute2-next,v2] dcb: Fix compilation warning about reallocarray | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Roi Dayan Feb. 22, 2021, 12:10 p.m. UTC
In older distros we need bsd/stdlib.h but newer distro doesn't
need it. Also old distro will need libbsd-devel installed and newer
doesn't. To remove a possible dependency on libbsd-devel replace usage
of reallocarray to realloc.

dcb_app.c: In function ‘dcb_app_table_push’:
dcb_app.c:68:25: warning: implicit declaration of function ‘reallocarray’; did you mean ‘realloc’?

Fixes: 8e9bed1493f5 ("dcb: Add a subtool for the DCB APP object")
Signed-off-by: Roi Dayan <roid@nvidia.com>
---

Notes:
    v2
    - tag for iproute next
    - replace reallocarray with realloc instead of messing with libbsd

 dcb/dcb_app.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Petr Machata Feb. 22, 2021, 12:30 p.m. UTC | #1
Roi Dayan <roid@nvidia.com> writes:

> --- a/dcb/dcb_app.c
> +++ b/dcb/dcb_app.c
> @@ -65,8 +65,7 @@ static void dcb_app_table_fini(struct dcb_app_table *tab)
>  
>  static int dcb_app_table_push(struct dcb_app_table *tab, struct dcb_app *app)
>  {
> -	struct dcb_app *apps = reallocarray(tab->apps, tab->n_apps + 1,
> -					    sizeof(*tab->apps));
> +	struct dcb_app *apps = realloc(tab->apps, (tab->n_apps + 1) * sizeof(*tab->apps));

reallocarray() checks that count*size does not overflow. But the whole
APP table needs to fit into one attribute, which limits the size to some
64K, so from UAPI direction this will never overflow. From the
command-line direction, size of 'struct app' is 4 bytes, so to overflow
you'd need to stuff in 1G APP entries. I think we don't need to worry
about that.

So this looks good.

Reviewed-by: Petr Machata <petrm@nvidia.com>
Petr Machata March 15, 2021, 1:10 p.m. UTC | #2
Petr Machata <petrm@nvidia.com> writes:

> Roi Dayan <roid@nvidia.com> writes:
>
>> --- a/dcb/dcb_app.c
>> +++ b/dcb/dcb_app.c
>> @@ -65,8 +65,7 @@ static void dcb_app_table_fini(struct dcb_app_table *tab)
>>  
>>  static int dcb_app_table_push(struct dcb_app_table *tab, struct dcb_app *app)
>>  {
>> -	struct dcb_app *apps = reallocarray(tab->apps, tab->n_apps + 1,
>> -					    sizeof(*tab->apps));
>> +	struct dcb_app *apps = realloc(tab->apps, (tab->n_apps + 1) * sizeof(*tab->apps));
>
> Reviewed-by: Petr Machata <petrm@nvidia.com>

Could this be merged, please?
David Ahern March 15, 2021, 3:09 p.m. UTC | #3
On 3/15/21 7:10 AM, Petr Machata wrote:
> Could this be merged, please?

done
diff mbox series

Patch

diff --git a/dcb/dcb_app.c b/dcb/dcb_app.c
index 7ce80f85072b..c4816bc2997f 100644
--- a/dcb/dcb_app.c
+++ b/dcb/dcb_app.c
@@ -65,8 +65,7 @@  static void dcb_app_table_fini(struct dcb_app_table *tab)
 
 static int dcb_app_table_push(struct dcb_app_table *tab, struct dcb_app *app)
 {
-	struct dcb_app *apps = reallocarray(tab->apps, tab->n_apps + 1,
-					    sizeof(*tab->apps));
+	struct dcb_app *apps = realloc(tab->apps, (tab->n_apps + 1) * sizeof(*tab->apps));
 
 	if (apps == NULL) {
 		perror("Cannot allocate APP table");