aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2023-03-06 16:30:26 +0000
committerEd Maste <emaste@FreeBSD.org>2023-03-06 18:10:29 +0000
commit305aaa93e0c805294c8bcbb5fe8b9f7caa28b349 (patch)
tree85aeefdd720b1088bb92074cf2c012f4aaeec1a6
parentd8644a5d2458588dd7d8e44bd23c6cacaead19b7 (diff)
downloadsrc-305aaa93e0c805294c8bcbb5fe8b9f7caa28b349.tar.gz
src-305aaa93e0c805294c8bcbb5fe8b9f7caa28b349.zip
netlink: do not memcpy 0 bytes from a NULL pointer
Although it works in practice it is UB, and might break after a future compiler update. This was rewritten in main and the memcpy call no longer exists, so this is a direct commit to stable/13 before 055776c84a41 is MFC'd. Discussed with: melifaro Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D38927
-rw-r--r--sys/netlink/route/iface.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/netlink/route/iface.c b/sys/netlink/route/iface.c
index 96f21a79a369..3ddef06bed7e 100644
--- a/sys/netlink/route/iface.c
+++ b/sys/netlink/route/iface.c
@@ -458,8 +458,11 @@ rtnl_handle_getlink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *n
error = ENOMEM;
break;
}
- memcpy(new_array, match_array, offset * sizeof(void *));
- free(match_array, M_TEMP);
+ if (match_array != NULL) {
+ memcpy(new_array, match_array,
+ offset * sizeof(void *));
+ free(match_array, M_TEMP);
+ }
match_array = new_array;
}