aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2005-04-23 11:29:45 +0800
committerbrooks <brooks@FreeBSD.org>2005-04-23 11:29:45 +0800
commit715e7d9634af5592e02fd04d4c6ad6b49b13a0d1 (patch)
tree7597d879bc38c8d8d3375a46618379835915a04b /security
parentf1b8a6785268798c85c13cd75da32bd88d01ea6b (diff)
downloadfreebsd-ports-gnome-715e7d9634af5592e02fd04d4c6ad6b49b13a0d1.tar.gz
freebsd-ports-gnome-715e7d9634af5592e02fd04d4c6ad6b49b13a0d1.tar.zst
freebsd-ports-gnome-715e7d9634af5592e02fd04d4c6ad6b49b13a0d1.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.
Diffstat (limited to 'security')
-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);