summaryrefslogtreecommitdiff
path: root/security/gvm-libs/files/patch-boreas_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/gvm-libs/files/patch-boreas_util.c')
-rw-r--r--security/gvm-libs/files/patch-boreas_util.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/security/gvm-libs/files/patch-boreas_util.c b/security/gvm-libs/files/patch-boreas_util.c
new file mode 100644
index 000000000000..1de3346db51b
--- /dev/null
+++ b/security/gvm-libs/files/patch-boreas_util.c
@@ -0,0 +1,62 @@
+--- boreas/util.c 2020-12-30 23:52:07.849996000 -0500
++++ boreas/util.c 2020-12-31 01:36:37.600382000 -0500
+@@ -21,12 +21,20 @@
+
+ #include "../base/networking.h" /* for range_t */
+
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/socket.h>
+ #include <errno.h>
+ #include <glib.h>
+ #include <ifaddrs.h> /* for getifaddrs() */
+ #include <net/ethernet.h>
+ #include <net/if.h> /* for if_nametoindex() */
+-#include <netpacket/packet.h> /* for sockaddr_ll */
++#ifdef AF_LINK
++# include <net/if_dl.h>
++#endif
++#ifdef AF_PACKET
++# include <netpacket/packet.h>
++#endif
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/socket.h>
+@@ -109,22 +117,22 @@
+ {
+ for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next)
+ {
+- if ((ifa->ifa_addr) && (ifa->ifa_addr->sa_family == AF_PACKET)
++ if ((ifa->ifa_addr) && (ifa->ifa_addr->sa_family == AF_LINK)
+ && !(ifa->ifa_flags & (IFF_LOOPBACK)))
+ {
+ if (interface_provided)
+ {
+ if (g_strcmp0 (interface, ifa->ifa_name) == 0)
+ {
+- struct sockaddr_ll *s =
+- (struct sockaddr_ll *) ifa->ifa_addr;
+- memcpy (mac, s->sll_addr, 6 * sizeof (uint8_t));
++ struct sockaddr_dl *s =
++ (struct sockaddr_dl *) ifa->ifa_addr;
++ memcpy (mac, s->sdl_data, 6 * sizeof (uint8_t));
+ }
+ }
+ else
+ {
+- struct sockaddr_ll *s = (struct sockaddr_ll *) ifa->ifa_addr;
+- memcpy (mac, s->sll_addr, 6 * sizeof (uint8_t));
++ struct sockaddr_dl *s = (struct sockaddr_dl *) ifa->ifa_addr;
++ memcpy (mac, s->sdl_data, 6 * sizeof (uint8_t));
+ }
+ }
+ }
+@@ -508,7 +516,7 @@
+ break;
+ case ARPV4:
+ {
+- soc = socket (PF_PACKET, SOCK_RAW, htons (ETH_P_ALL));
++ soc = socket (PF_LINK, SOCK_RAW, 0);
+ if (soc < 0)
+ {
+ g_warning ("%s: failed to open ARPV4 socket: %s", __func__,