Date: Mon, 12 Mar 2012 22:52:06 -0700 (PDT) From: Stanislav Sedov <stas@deglitch.com> To: FreeBSD-gnats-submit@FreeBSD.org Cc: dgerow@afflictions.org Subject: ports/165997: [PATCH] security/openconnect: fix on FreeBSD 10.0 Message-ID: <20120313055206.7BECB39F1C@orion.SpringDaemons.com> Resent-Message-ID: <201203130700.q2D703HO095443@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 165997 >Category: ports >Synopsis: [PATCH] security/openconnect: fix on FreeBSD 10.0 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Mar 13 07:00:03 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Stanislav Sedov >Release: FreeBSD 10.0-CURRENT amd64 >Organization: Deglitch Networks >Environment: System: FreeBSD orion.SpringDaemons.com 10.0-CURRENT FreeBSD 10.0-CURRENT #11 r232841M: Sun Mar 11 17:06:29 PDT >Description: - The SIOCSIFADDR ioctl was dropped on FreeBSD 10.0. Use SIOCAIFADDR instead. This PR depends on ports/165992. Added file(s): - files/patch-tun.c Port maintainer (dgerow@afflictions.org) is cc'd. Generated with FreeBSD Port Tools 0.99_4 (mode: change, diff: suffix) >How-To-Repeat: >Fix: --- openconnect-3.15_1.patch begins here --- diff -ruN --exclude=CVS ../openconnect.orig/Makefile ./Makefile --- ../openconnect.orig/Makefile 2012-03-12 22:48:24.000000000 -0700 +++ ./Makefile 2012-03-12 22:48:42.000000000 -0700 @@ -7,7 +7,7 @@ PORTNAME= openconnect PORTVERSION= 3.15 -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= security MASTER_SITES= ftp://ftp.infradead.org/pub/openconnect/ \ CRITICAL diff -ruN --exclude=CVS ../openconnect.orig/files/patch-tun.c ./files/patch-tun.c --- ../openconnect.orig/files/patch-tun.c 1969-12-31 16:00:00.000000000 -0800 +++ ./files/patch-tun.c 2012-03-12 22:46:33.000000000 -0700 @@ -0,0 +1,56 @@ +--- tun.c.orig 2011-11-24 08:18:34.000000000 -0800 ++++ tun.c 2012-03-12 22:46:30.000000000 -0700 +@@ -38,6 +38,9 @@ + #include <arpa/inet.h> + #include <errno.h> + #include <ctype.h> ++#if defined(__FreeBSD__) ++#include <sys/param.h> /* For __FreeBSD_version */ ++#endif + #if defined(__sun__) + #include <stropts.h> + #include <sys/sockio.h> +@@ -109,9 +112,43 @@ + + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = inet_addr(vpninfo->vpn_addr); ++ ++ /* ++ * SIOCSIFADDR ioctl was dropped in FreeBSD 10.0 ++ */ ++#if defined(__FreeBSD__) && __FreeBSD_version > 1000004 ++ { ++ struct ifaliasreq ifra; ++ struct sockaddr_in *sin; ++ ++ memset(&ifra, 0, sizeof(ifra)); ++ strncpy(ifra.ifra_name, vpninfo->ifname, sizeof(ifra.ifra_name) - 1); ++ ++ /* Set source address. */ ++ sin = (struct sockaddr_in *)&(ifra.ifra_addr); ++ memcpy(sin, &addr, sizeof(struct sockaddr_in)); ++ sin->sin_len = sizeof(*sin); ++ ++ /* Set destination address. */ ++ sin = (struct sockaddr_in *)&(ifra.ifra_broadaddr); ++ memcpy(sin, &addr, sizeof(struct sockaddr_in)); ++ sin->sin_len = sizeof(*sin); ++ ++ /* Set mask address. */ ++ sin = (struct sockaddr_in *)&(ifra.ifra_mask); ++ addr.sin_family = AF_INET; ++ addr.sin_addr.s_addr = 0xffffffff; ++ memcpy(sin, &addr, sizeof(struct sockaddr_in)); ++ sin->sin_len = sizeof(*sin); ++ ++ if (ioctl(net_fd, SIOCAIFADDR, &ifra) < 0) ++ perror(_("SIOCAIFADDR")); ++ } ++#else + memcpy(&ifr.ifr_addr, &addr, sizeof(addr)); + if (ioctl(net_fd, SIOCSIFADDR, &ifr) < 0) + perror(_("SIOCSIFADDR")); ++#endif + } + + ifr.ifr_mtu = vpninfo->mtu; --- openconnect-3.15_1.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120313055206.7BECB39F1C>