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

Subsystems: the rest

STALE1968d

4 messages, 3 authors, 2021-03-15 · open the first message on its own page

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

From: Roi Dayan <hidden>
Date: 2021-02-22 12:11:41

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 <redacted>
---

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(-)
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");
-- 
2.8.0

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

From: Petr Machata <petrm@nvidia.com>
Date: 2021-02-22 12:31:42

Roi Dayan [off-list ref] writes:
quoted hunk
--- 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>

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

From: Petr Machata <petrm@nvidia.com>
Date: 2021-03-15 13:11:08

Petr Machata [off-list ref] writes:
Roi Dayan [off-list ref] writes:
quoted
--- 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?

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

From: David Ahern <hidden>
Date: 2021-03-15 15:10:12

On 3/15/21 7:10 AM, Petr Machata wrote:
Could this be merged, please?
done
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help