On 2008/11/07 12:11, Mikko Tolmunen wrote:
> try the following diff.

Thanks Mikko.

Here are ports diffs for both versions, tested on i386, sparc64,
amd64, arm (1.0 with my test program, 1.1 with sample/get_addr).

I took care to make small patches so people coming later can see
what really changed. (I deliberately didn't include the diff spam
from the newer update-patches).

any ok's?

Index: 1.0/Makefile
===================================================================
RCS file: /cvs/ports/net/libnet/1.0/Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile
--- 1.0/Makefile        4 Jan 2008 17:48:37 -0000       1.6
+++ 1.0/Makefile        7 Nov 2008 20:57:49 -0000
@@ -2,7 +2,7 @@
 
 REVISION=      1.0
 VERSION=       ${REVISION}.2a
-PKGNAME=       ${DISTNAME}p1
+PKGNAME=       ${DISTNAME}p2
 SHARED_LIBS=   net     0.0
 
 MASTER_SITES=  http://www.packetfactory.net/libnet/dist/deprecated/
Index: 1.0/patches/patch-src_libnet_link_bpf_c
===================================================================
RCS file: /cvs/ports/net/libnet/1.0/patches/patch-src_libnet_link_bpf_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_libnet_link_bpf_c
--- 1.0/patches/patch-src_libnet_link_bpf_c     23 May 2005 23:50:40 -0000      
1.1
+++ 1.0/patches/patch-src_libnet_link_bpf_c     7 Nov 2008 20:57:49 -0000
@@ -1,6 +1,6 @@
 $OpenBSD: patch-src_libnet_link_bpf_c,v 1.1 2005/05/23 23:50:40 msf Exp $
---- src/libnet_link_bpf.c.orig Mon Mar 14 11:23:41 2005
-+++ src/libnet_link_bpf.c      Mon Mar 14 11:37:47 2005
+--- src/libnet_link_bpf.c.orig Mon Jan  8 01:13:48 2001
++++ src/libnet_link_bpf.c      Fri Nov  7 19:42:53 2008
 @@ -61,7 +61,7 @@ libnet_bpf_open(char *errbuf)
       */
      for (i = 0;;i++)
@@ -71,3 +71,23 @@ $OpenBSD: patch-src_libnet_link_bpf_c,v 
          goto bad;
      }
  #endif
+@@ -250,6 +250,7 @@ libnet_get_hwaddr(struct libnet_link_int *l, const cha
+     char *buf, *next, *end;
+     struct if_msghdr *ifm;
+     struct sockaddr_dl *sdl;
++    struct sockaddr *sa;
+     struct ether_addr *ea = NULL;
+ 
+     mib[0] = CTL_NET;
+@@ -280,7 +281,10 @@ libnet_get_hwaddr(struct libnet_link_int *l, const cha
+         ifm = (struct if_msghdr *)next;
+         if (ifm->ifm_type == RTM_IFINFO)
+         {
+-            sdl = (struct sockaddr_dl *)(ifm + 1);
++            sa = (struct sockaddr *)(ifm + 1);
++            if (sa->sa_family != AF_LINK)
++                continue;
++            sdl = (struct sockaddr_dl *)sa;
+             if (strncmp(&sdl->sdl_data[0], device, sdl->sdl_nlen) == 0)
+             {
+                 if (!(ea = malloc(sizeof(struct ether_addr))))
Index: 1.1/Makefile
===================================================================
RCS file: /cvs/ports/net/libnet/1.1/Makefile,v
retrieving revision 1.4
diff -u -p -r1.4 Makefile
--- 1.1/Makefile        4 Jan 2008 17:48:37 -0000       1.4
+++ 1.1/Makefile        7 Nov 2008 20:57:49 -0000
@@ -2,6 +2,7 @@
 
 REVISION=      1.1
 VERSION=       ${REVISION}.2.1
+PKGNAME=        ${DISTNAME}p0
 SHARED_LIBS=   net     11.0
 
 WRKDIST=       ${WRKDIR}/libnet
Index: 1.1/patches/patch-src_libnet_link_bpf_c
===================================================================
RCS file: 1.1/patches/patch-src_libnet_link_bpf_c
diff -N 1.1/patches/patch-src_libnet_link_bpf_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ 1.1/patches/patch-src_libnet_link_bpf_c     7 Nov 2008 20:57:49 -0000
@@ -0,0 +1,24 @@
+$OpenBSD$
+--- src/libnet_link_bpf.c.orig Fri Nov  7 20:44:44 2008
++++ src/libnet_link_bpf.c      Fri Nov  7 20:46:01 2008
+@@ -259,6 +259,7 @@ libnet_get_hwaddr(libnet_t *l)
+     int8_t *buf, *next, *end;
+     struct if_msghdr *ifm;
+     struct sockaddr_dl *sdl;
++    struct sockaddr *sa;
+     struct libnet_ether_addr *ea = NULL;
+ 
+     mib[0] = CTL_NET;
+@@ -310,7 +311,11 @@ libnet_get_hwaddr(libnet_t *l)
+         ifm = (struct if_msghdr *)next;
+         if (ifm->ifm_type == RTM_IFINFO)
+         {
+-            sdl = (struct sockaddr_dl *)(ifm + 1);
++            sa = (struct sockaddr *)(ifm + 1);
++            if (sa->sa_family != AF_LINK)
++                continue;
++            sdl = (struct sockaddr_dl *)sa;
++
+             if (strncmp(&sdl->sdl_data[0], l->device, sdl->sdl_nlen) == 0)
+             {
+                 if (!(ea = malloc(sizeof(struct libnet_ether_addr))))

Reply via email to