aboutsummaryrefslogtreecommitdiff
path: root/security/wpa_supplicant
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2005-04-23 03:29:45 +0000
committerBrooks Davis <brooks@FreeBSD.org>2005-04-23 03:29:45 +0000
commited96a0df08ea5f91f201f45fdb3c5e82bd2974e0 (patch)
tree2ad9bf8b06e82b53cdceab0cc88d174a8c792e0d /security/wpa_supplicant
parentfcd2aa8e44d86505eb21fc24c390f2e7ec1e075d (diff)
downloadports-ed96a0df08ea5f91f201f45fdb3c5e82bd2974e0.tar.gz
ports-ed96a0df08ea5f91f201f45fdb3c5e82bd2974e0.zip
Fix wpa_cli. You need to pass all of the sockaddr, not just part of it.
Also be sure to keep the path null terminated as Stevens does. While I'm here, take maintainership since I use this and seem to be making most of the recent commits.
Notes
Notes: svn path=/head/; revision=133980
Diffstat (limited to 'security/wpa_supplicant')
-rw-r--r--security/wpa_supplicant/Makefile3
-rw-r--r--security/wpa_supplicant/files/patch-wpa__ctrl.c27
2 files changed, 29 insertions, 1 deletions
diff --git a/security/wpa_supplicant/Makefile b/security/wpa_supplicant/Makefile
index 141e86adbcc3..9806eded4342 100644
--- a/security/wpa_supplicant/Makefile
+++ b/security/wpa_supplicant/Makefile
@@ -7,10 +7,11 @@
PORTNAME= wpa_supplicant
PORTVERSION= 0.3.8
+PORTREVISION= 1
CATEGORIES= security net
MASTER_SITES= http://hostap.epitest.fi/releases/
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= brooks@FreeBSD.org
COMMENT= Supplicant (client) for WPA/802.1x protocols
USE_REINPLACE= yes
diff --git a/security/wpa_supplicant/files/patch-wpa__ctrl.c b/security/wpa_supplicant/files/patch-wpa__ctrl.c
new file mode 100644
index 000000000000..68887e26688b
--- /dev/null
+++ b/security/wpa_supplicant/files/patch-wpa__ctrl.c
@@ -0,0 +1,27 @@
+
+$FreeBSD$
+
+--- wpa_ctrl.c.orig
++++ wpa_ctrl.c
+@@ -88,7 +88,7 @@
+ }
+
+ ctrl->local.sun_family = AF_UNIX;
+- snprintf(ctrl->local.sun_path, sizeof(ctrl->local.sun_path),
++ snprintf(ctrl->local.sun_path, sizeof(ctrl->local.sun_path) - 1,
+ "/tmp/wpa_ctrl_%d-%d", getpid(), counter++);
+ if (bind(ctrl->s, (struct sockaddr *) &ctrl->local,
+ sizeof(ctrl->local.sun_family) +
+@@ -99,10 +99,9 @@
+ }
+
+ ctrl->dest.sun_family = AF_UNIX;
+- strncpy(ctrl->dest.sun_path, ctrl_path, sizeof(ctrl->dest.sun_path));
++ strncpy(ctrl->dest.sun_path, ctrl_path, sizeof(ctrl->dest.sun_path) - 1);
+ if (connect(ctrl->s, (struct sockaddr *) &ctrl->dest,
+- sizeof(ctrl->dest.sun_family) +
+- strlen(ctrl->dest.sun_path)) < 0) {
++ sizeof(ctrl->dest)) < 0) {
+ close(ctrl->s);
+ unlink(ctrl->local.sun_path);
+ free(ctrl);