aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPouria Mousavizadeh Tehrani <pouria@FreeBSD.org>2026-07-30 13:41:51 +0000
committerPouria Mousavizadeh Tehrani <pouria@FreeBSD.org>2026-08-02 13:19:47 +0000
commitf923f4739628fc5c80907dad8b69ae9b38269cd0 (patch)
treefb322fb98d5e8d2addce52120a806279bb8f2f29
parenta5a16ba5f1791e1be87fede24887b469a9a0d911 (diff)
if_vxlan(4): Fix panic by validating unused drvspec values
Add validation for unused parameter values in the gap between VXLAN_PARAM_WITH_LOCAL_ADDR4 and VXLAN_PARAM_WITH_LOCAL_ADDR6 to prevent panics. PR: 297151 Reported by: Robert Morris <rtm@lcs.mit.edu> Reviewed by: markj MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D58552 (cherry picked from commit c4d7745cd90fc99af3cbccfda7e11798ea7d187b)
-rw-r--r--sys/net/if_vxlan.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c
index fc3d3752e0ae..a9c324724cdc 100644
--- a/sys/net/if_vxlan.c
+++ b/sys/net/if_vxlan.c
@@ -2309,7 +2309,8 @@ vxlan_ioctl_drvspec(struct vxlan_softc *sc, struct ifdrv *ifd, int get)
} args;
int out, error;
- if (ifd->ifd_cmd >= vxlan_control_table_size)
+ if (ifd->ifd_cmd >= vxlan_control_table_size ||
+ vxlan_control_table[ifd->ifd_cmd].vxlc_func == NULL)
return (EINVAL);
bzero(&args, sizeof(args));