|
|
@@ -10,6 +10,7 @@
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/tcp.h>
|
|
|
#include <linux/workqueue.h>
|
|
|
+#include <linux/nospec.h>
|
|
|
|
|
|
#include <linux/inet_diag.h>
|
|
|
#include <linux/sock_diag.h>
|
|
|
@@ -218,6 +219,7 @@ static int __sock_diag_cmd(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|
|
|
|
|
if (req->sdiag_family >= AF_MAX)
|
|
|
return -EINVAL;
|
|
|
+ req->sdiag_family = array_index_nospec(req->sdiag_family, AF_MAX);
|
|
|
|
|
|
if (sock_diag_handlers[req->sdiag_family] == NULL)
|
|
|
sock_load_diag_module(req->sdiag_family, 0);
|