New release for wpa_supplicant.

As usual, please test it with your setup.

Ciao!
David

Index: Makefile
===================================================================
RCS file: /cvs/ports/security/wpa_supplicant/Makefile,v
retrieving revision 1.33
diff -u -p -r1.33 Makefile
--- Makefile    17 May 2016 08:29:27 -0000      1.33
+++ Makefile    3 Oct 2016 09:35:58 -0000
@@ -2,9 +2,8 @@
 
 COMMENT=       IEEE 802.1X supplicant
 
-DISTNAME=      wpa_supplicant-2.5
+DISTNAME=      wpa_supplicant-2.6
 CATEGORIES=    security net
-REVISION=      1
 
 HOMEPAGE=      http://w1.fi/wpa_supplicant/
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/security/wpa_supplicant/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- distinfo    29 Sep 2015 11:57:54 -0000      1.8
+++ distinfo    3 Oct 2016 09:35:58 -0000
@@ -1,2 +1,2 @@
-SHA256 (wpa_supplicant-2.5.tar.gz) = 
zOVbrkg7Nk6uVcNbpWfCeb5ELti6tbgKPH+w0Fe5sxY=
-SIZE (wpa_supplicant-2.5.tar.gz) = 2607336
+SHA256 (wpa_supplicant-2.6.tar.gz) = 
tJNtNMTmzdRJVL66dCltlkvCyWaOyqUlXkmWNv4rFFA=
+SIZE (wpa_supplicant-2.6.tar.gz) = 2753524
Index: patches/patch-src_crypto_crypto_openssl_c
===================================================================
RCS file: patches/patch-src_crypto_crypto_openssl_c
diff -N patches/patch-src_crypto_crypto_openssl_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_crypto_crypto_openssl_c   3 Oct 2016 09:35:58 -0000
@@ -0,0 +1,24 @@
+$OpenBSD$
+
+Compatibility fixes for LibreSSL
+
+--- src/crypto/crypto_openssl.c.orig   Mon Oct  3 11:17:18 2016
++++ src/crypto/crypto_openssl.c        Mon Oct  3 11:19:25 2016
+@@ -611,7 +611,7 @@ void crypto_cipher_deinit(struct crypto_cipher *ctx)
+ 
+ void * dh5_init(struct wpabuf **priv, struct wpabuf **publ)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+       DH *dh;
+       struct wpabuf *pubkey = NULL, *privkey = NULL;
+       size_t publen, privlen;
+@@ -712,7 +712,7 @@ err:
+ 
+ void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+       DH *dh;
+ 
+       dh = DH_new();
Index: patches/patch-src_crypto_tls_openssl_c
===================================================================
RCS file: patches/patch-src_crypto_tls_openssl_c
diff -N patches/patch-src_crypto_tls_openssl_c
--- patches/patch-src_crypto_tls_openssl_c      29 Sep 2015 11:57:54 -0000      
1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-$OpenBSD: patch-src_crypto_tls_openssl_c,v 1.3 2015/09/29 11:57:54 dcoppa Exp $
-
-Compatibility fixes for LibreSSL
-
---- src/crypto/tls_openssl.c.orig      Sun Sep 27 21:02:05 2015
-+++ src/crypto/tls_openssl.c   Mon Sep 28 13:43:46 2015
-@@ -2229,7 +2229,7 @@ static int tls_parse_pkcs12(struct tls_data *data, SSL
-       }
- 
-       if (certs) {
--#if OPENSSL_VERSION_NUMBER >= 0x10002000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
-               SSL_clear_chain_certs(ssl);
-               while ((cert = sk_X509_pop(certs)) != NULL) {
-                       X509_NAME_oneline(X509_get_subject_name(cert), buf,
-@@ -2247,7 +2247,7 @@ static int tls_parse_pkcs12(struct tls_data *data, SSL
-                       /* Try to continue anyway */
-               }
-               sk_X509_free(certs);
--#ifndef OPENSSL_IS_BORINGSSL
-+#if !defined(OPENSSL_IS_BORINGSSL) && !defined(LIBRESSL_VERSION_NUMBER)
-               res = SSL_build_cert_chain(ssl,
-                                          SSL_BUILD_CHAIN_FLAG_CHECK |
-                                          SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR);
-@@ -2812,7 +2812,7 @@ int tls_connection_get_random(void *ssl_ctx, struct tl
-       if (conn == NULL || keys == NULL)
-               return -1;
-       ssl = conn->ssl;
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
-       if (ssl == NULL || ssl->s3 == NULL || ssl->session == NULL)
-               return -1;
- 
-@@ -2841,7 +2841,7 @@ int tls_connection_get_random(void *ssl_ctx, struct tl
- #ifndef CONFIG_FIPS
- static int openssl_get_keyblock_size(SSL *ssl)
- {
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
-       const EVP_CIPHER *c;
-       const EVP_MD *h;
-       int md_size;
-@@ -2911,7 +2911,7 @@ static int openssl_tls_prf(struct tls_connection *conn
-                  "mode");
-       return -1;
- #else /* CONFIG_FIPS */
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
-       SSL *ssl;
-       u8 *rnd;
-       int ret = -1;
-@@ -3394,7 +3394,7 @@ int tls_connection_set_cipher_list(void *tls_ctx, stru
- 
-       wpa_printf(MSG_DEBUG, "OpenSSL: cipher suites: %s", buf + 1);
- 
--#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
- #if defined(EAP_FAST) || defined(EAP_FAST_DYNAMIC) || defined(EAP_SERVER_FAST)
-       if (os_strstr(buf, ":ADH-")) {
-               /*
-@@ -3977,7 +3977,7 @@ static int tls_sess_sec_cb(SSL *s, void *secret, int *
-       struct tls_connection *conn = arg;
-       int ret;
- 
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
-       if (conn == NULL || conn->session_ticket_cb == NULL)
-               return 0;
- 
Index: patches/patch-src_utils_common_c
===================================================================
RCS file: patches/patch-src_utils_common_c
diff -N patches/patch-src_utils_common_c
--- patches/patch-src_utils_common_c    17 May 2016 08:29:27 -0000      1.5
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,65 +0,0 @@
-$OpenBSD: patch-src_utils_common_c,v 1.5 2016/05/17 08:29:27 dcoppa Exp $
-
-From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <jo...@qca.qualcomm.com>
-Date: Fri, 4 Mar 2016 17:20:18 +0200
-Subject: [PATCH 1/5] WPS: Reject a Credential with invalid passphrase
-
-WPA/WPA2-Personal passphrase is not allowed to include control
-characters. Reject a Credential received from a WPS Registrar both as
-STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or
-WPA2PSK authentication type and includes an invalid passphrase.
-
-This fixes an issue where hostapd or wpa_supplicant could have updated
-the configuration file PSK/passphrase parameter with arbitrary data from
-an external device (Registrar) that may not be fully trusted. Should
-such data include a newline character, the resulting configuration file
-could become invalid and fail to be parsed.
-
-Signed-off-by: Jouni Malinen <jo...@qca.qualcomm.com>
-
-From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001
-From: Paul Stewart <ps...@google.com>
-Date: Thu, 3 Mar 2016 15:40:19 -0800
-Subject: [PATCH 3/5] Remove newlines from wpa_supplicant config network output
-
-Spurious newlines output while writing the config file can corrupt the
-wpa_supplicant configuration. Avoid writing these for the network block
-parameters. This is a generic filter that cover cases that may not have
-been explicitly addressed with a more specific commit to avoid control
-characters in the psk parameter.
-
-Signed-off-by: Paul Stewart <ps...@google.com>
-
---- src/utils/common.c.orig    Sun Sep 27 21:02:05 2015
-+++ src/utils/common.c Tue May 17 09:21:02 2016
-@@ -697,6 +697,29 @@ int is_hex(const u8 *data, size_t len)
- }
- 
- 
-+int has_ctrl_char(const u8 *data, size_t len)
-+{
-+      size_t i;
-+
-+      for (i = 0; i < len; i++) {
-+              if (data[i] < 32 || data[i] == 127)
-+                      return 1;
-+      }
-+      return 0;
-+}
-+
-+
-+int has_newline(const char *str)
-+{
-+      while (*str) {
-+              if (*str == '\n' || *str == '\r')
-+                      return 1;
-+              str++;
-+      }
-+      return 0;
-+}
-+
-+
- size_t merge_byte_arrays(u8 *res, size_t res_len,
-                        const u8 *src1, size_t src1_len,
-                        const u8 *src2, size_t src2_len)
Index: patches/patch-src_utils_common_h
===================================================================
RCS file: patches/patch-src_utils_common_h
diff -N patches/patch-src_utils_common_h
--- patches/patch-src_utils_common_h    17 May 2016 08:29:27 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,44 +0,0 @@
-$OpenBSD: patch-src_utils_common_h,v 1.1 2016/05/17 08:29:27 dcoppa Exp $
-
-From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <jo...@qca.qualcomm.com>
-Date: Fri, 4 Mar 2016 17:20:18 +0200
-Subject: [PATCH 1/5] WPS: Reject a Credential with invalid passphrase
-
-WPA/WPA2-Personal passphrase is not allowed to include control
-characters. Reject a Credential received from a WPS Registrar both as
-STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or
-WPA2PSK authentication type and includes an invalid passphrase.
-
-This fixes an issue where hostapd or wpa_supplicant could have updated
-the configuration file PSK/passphrase parameter with arbitrary data from
-an external device (Registrar) that may not be fully trusted. Should
-such data include a newline character, the resulting configuration file
-could become invalid and fail to be parsed.
-
-Signed-off-by: Jouni Malinen <jo...@qca.qualcomm.com>
-
-From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001
-From: Paul Stewart <ps...@google.com>
-Date: Thu, 3 Mar 2016 15:40:19 -0800
-Subject: [PATCH 3/5] Remove newlines from wpa_supplicant config network output
-
-Spurious newlines output while writing the config file can corrupt the
-wpa_supplicant configuration. Avoid writing these for the network block
-parameters. This is a generic filter that cover cases that may not have
-been explicitly addressed with a more specific commit to avoid control
-characters in the psk parameter.
-
-Signed-off-by: Paul Stewart <ps...@google.com>
-
---- src/utils/common.h.orig    Sun Sep 27 21:02:05 2015
-+++ src/utils/common.h Tue May 17 09:21:02 2016
-@@ -477,6 +477,8 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_
- 
- char * wpa_config_parse_string(const char *value, size_t *len);
- int is_hex(const u8 *data, size_t len);
-+int has_ctrl_char(const u8 *data, size_t len);
-+int has_newline(const char *str);
- size_t merge_byte_arrays(u8 *res, size_t res_len,
-                        const u8 *src1, size_t src1_len,
-                        const u8 *src2, size_t src2_len);
Index: patches/patch-src_utils_eloop_c
===================================================================
RCS file: /cvs/ports/security/wpa_supplicant/patches/patch-src_utils_eloop_c,v
retrieving revision 1.6
diff -u -p -r1.6 patch-src_utils_eloop_c
--- patches/patch-src_utils_eloop_c     17 May 2016 08:29:27 -0000      1.6
+++ patches/patch-src_utils_eloop_c     3 Oct 2016 09:35:58 -0000
@@ -3,9 +3,9 @@ $OpenBSD: patch-src_utils_eloop_c,v 1.6 
 Don't try to access list members to free them unless already
 initialised
 
---- src/utils/eloop.c.orig     Sun Sep 27 21:02:05 2015
-+++ src/utils/eloop.c  Mon Sep 28 09:35:05 2015
-@@ -1064,6 +1064,9 @@ void eloop_destroy(void)
+--- src/utils/eloop.c.orig     Sun Oct  2 20:51:11 2016
++++ src/utils/eloop.c  Mon Oct  3 11:06:38 2016
+@@ -1249,6 +1249,9 @@ void eloop_destroy(void)
        struct eloop_timeout *timeout, *prev;
        struct os_reltime now;
  
Index: patches/patch-src_wps_wps_attr_process_c
===================================================================
RCS file: patches/patch-src_wps_wps_attr_process_c
diff -N patches/patch-src_wps_wps_attr_process_c
--- patches/patch-src_wps_wps_attr_process_c    17 May 2016 08:29:27 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-$OpenBSD: patch-src_wps_wps_attr_process_c,v 1.1 2016/05/17 08:29:27 dcoppa 
Exp $
-
-From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <jo...@qca.qualcomm.com>
-Date: Fri, 4 Mar 2016 17:20:18 +0200
-Subject: [PATCH 1/5] WPS: Reject a Credential with invalid passphrase
-
-WPA/WPA2-Personal passphrase is not allowed to include control
-characters. Reject a Credential received from a WPS Registrar both as
-STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or
-WPA2PSK authentication type and includes an invalid passphrase.
-
-This fixes an issue where hostapd or wpa_supplicant could have updated
-the configuration file PSK/passphrase parameter with arbitrary data from
-an external device (Registrar) that may not be fully trusted. Should
-such data include a newline character, the resulting configuration file
-could become invalid and fail to be parsed.
-
-Signed-off-by: Jouni Malinen <jo...@qca.qualcomm.com>
-
---- src/wps/wps_attr_process.c.orig    Sun Sep 27 21:02:05 2015
-+++ src/wps/wps_attr_process.c Tue May 17 09:21:02 2016
-@@ -229,6 +229,16 @@ static int wps_workaround_cred_key(struct wps_credenti
-               cred->key_len--;
- #endif /* CONFIG_WPS_STRICT */
-       }
-+
-+
-+      if (cred->auth_type & (WPS_AUTH_WPAPSK | WPS_AUTH_WPA2PSK) &&
-+          (cred->key_len < 8 || has_ctrl_char(cred->key, cred->key_len))) {
-+              wpa_printf(MSG_INFO, "WPS: Reject credential with invalid 
WPA/WPA2-Personal passphrase");
-+              wpa_hexdump_ascii_key(MSG_INFO, "WPS: Network Key",
-+                                    cred->key, cred->key_len);
-+              return -1;
-+      }
-+
-       return 0;
- }
- 
Index: patches/patch-wpa_supplicant_Makefile
===================================================================
RCS file: 
/cvs/ports/security/wpa_supplicant/patches/patch-wpa_supplicant_Makefile,v
retrieving revision 1.8
diff -u -p -r1.8 patch-wpa_supplicant_Makefile
--- patches/patch-wpa_supplicant_Makefile       29 Sep 2015 11:57:54 -0000      
1.8
+++ patches/patch-wpa_supplicant_Makefile       3 Oct 2016 09:35:58 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-wpa_supplicant_Makefile,v 1.8 2015/09/29 11:57:54 dcoppa Exp $
---- wpa_supplicant/Makefile.orig       Mon Sep 28 09:36:07 2015
-+++ wpa_supplicant/Makefile    Mon Sep 28 09:36:36 2015
-@@ -131,16 +131,6 @@ endif
+--- wpa_supplicant/Makefile.orig       Sun Oct  2 20:51:11 2016
++++ wpa_supplicant/Makefile    Mon Oct  3 11:06:38 2016
+@@ -153,16 +153,6 @@ endif
  OBJS += ../src/utils/$(CONFIG_ELOOP).o
  OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
  
Index: patches/patch-wpa_supplicant_config_c
===================================================================
RCS file: patches/patch-wpa_supplicant_config_c
diff -N patches/patch-wpa_supplicant_config_c
--- patches/patch-wpa_supplicant_config_c       17 May 2016 08:29:27 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,169 +0,0 @@
-$OpenBSD: patch-wpa_supplicant_config_c,v 1.1 2016/05/17 08:29:27 dcoppa Exp $
-
-From 73e4abb24a936014727924d8b0b2965edfc117dd Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <jo...@qca.qualcomm.com>
-Date: Fri, 4 Mar 2016 18:46:41 +0200
-Subject: [PATCH 2/5] Reject psk parameter set with invalid passphrase character
-
-WPA/WPA2-Personal passphrase is not allowed to include control
-characters. Reject a passphrase configuration attempt if that passphrase
-includes an invalid passphrase.
-
-This fixes an issue where wpa_supplicant could have updated the
-configuration file psk parameter with arbitrary data from the control
-interface or D-Bus interface. While those interfaces are supposed to be
-accessible only for trusted users/applications, it may be possible that
-an untrusted user has access to a management software component that
-does not validate the passphrase value before passing it to
-wpa_supplicant.
-
-This could allow such an untrusted user to inject up to 63 characters of
-almost arbitrary data into the configuration file. Such configuration
-file could result in wpa_supplicant trying to load a library (e.g.,
-opensc_engine_path, pkcs11_engine_path, pkcs11_module_path,
-load_dynamic_eap) from user controlled location when starting again.
-This would allow code from that library to be executed under the
-wpa_supplicant process privileges.
-
-Signed-off-by: Jouni Malinen <jo...@qca.qualcomm.com>
-
-From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001
-From: Paul Stewart <ps...@google.com>
-Date: Thu, 3 Mar 2016 15:40:19 -0800
-Subject: [PATCH 3/5] Remove newlines from wpa_supplicant config network output
-
-Spurious newlines output while writing the config file can corrupt the
-wpa_supplicant configuration. Avoid writing these for the network block
-parameters. This is a generic filter that cover cases that may not have
-been explicitly addressed with a more specific commit to avoid control
-characters in the psk parameter.
-
-Signed-off-by: Paul Stewart <ps...@google.com>
-
-From b166cd84a77a6717be9600bf95378a0055d6f5a5 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <jo...@qca.qualcomm.com>
-Date: Tue, 5 Apr 2016 23:33:10 +0300
-Subject: [PATCH 4/5] Reject SET_CRED commands with newline characters in the 
string values
-
-Most of the cred block parameters are written as strings without
-filtering and if there is an embedded newline character in the value,
-unexpected configuration file data might be written.
-
-This fixes an issue where wpa_supplicant could have updated the
-configuration file cred parameter with arbitrary data from the control
-interface or D-Bus interface. While those interfaces are supposed to be
-accessible only for trusted users/applications, it may be possible that
-an untrusted user has access to a management software component that
-does not validate the credential value before passing it to
-wpa_supplicant.
-
-This could allow such an untrusted user to inject almost arbitrary data
-into the configuration file. Such configuration file could result in
-wpa_supplicant trying to load a library (e.g., opensc_engine_path,
-pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
-controlled location when starting again. This would allow code from that
-library to be executed under the wpa_supplicant process privileges.
-
-Signed-off-by: Jouni Malinen <jo...@qca.qualcomm.com>
-
-From 2a3f56502b52375c3bf113cf92adfa99bad6b488 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <jo...@qca.qualcomm.com>
-Date: Tue, 5 Apr 2016 23:55:48 +0300
-Subject: [PATCH 5/5] Reject SET commands with newline characters in the string 
values
-
-Many of the global configuration parameters are written as strings
-without filtering and if there is an embedded newline character in the
-value, unexpected configuration file data might be written.
-
-This fixes an issue where wpa_supplicant could have updated the
-configuration file global parameter with arbitrary data from the control
-interface or D-Bus interface. While those interfaces are supposed to be
-accessible only for trusted users/applications, it may be possible that
-an untrusted user has access to a management software component that
-does not validate the value of a parameter before passing it to
-wpa_supplicant.
-
-This could allow such an untrusted user to inject almost arbitrary data
-into the configuration file. Such configuration file could result in
-wpa_supplicant trying to load a library (e.g., opensc_engine_path,
-pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
-controlled location when starting again. This would allow code from that
-library to be executed under the wpa_supplicant process privileges.
-
-Signed-off-by: Jouni Malinen <jo...@qca.qualcomm.com>
-
---- wpa_supplicant/config.c.orig       Sun Sep 27 21:02:05 2015
-+++ wpa_supplicant/config.c    Tue May 17 09:21:02 2016
-@@ -456,6 +456,12 @@ static int wpa_config_parse_psk(const struct parse_dat
-               }
-               wpa_hexdump_ascii_key(MSG_MSGDUMP, "PSK (ASCII passphrase)",
-                                     (u8 *) value, len);
-+              if (has_ctrl_char((u8 *) value, len)) {
-+                      wpa_printf(MSG_ERROR,
-+                                 "Line %d: Invalid passphrase character",
-+                                 line);
-+                      return -1;
-+              }
-               if (ssid->passphrase && os_strlen(ssid->passphrase) == len &&
-                   os_memcmp(ssid->passphrase, value, len) == 0)
-                       return 0;
-@@ -2604,8 +2610,19 @@ char * wpa_config_get(struct wpa_ssid *ssid, const cha
- 
-       for (i = 0; i < NUM_SSID_FIELDS; i++) {
-               const struct parse_data *field = &ssid_fields[i];
--              if (os_strcmp(var, field->name) == 0)
--                      return field->writer(field, ssid);
-+              if (os_strcmp(var, field->name) == 0) {
-+                      char *ret = field->writer(field, ssid);
-+
-+                      if (ret && has_newline(ret)) {
-+                              wpa_printf(MSG_ERROR,
-+                                         "Found newline in value for %s; not 
returning it",
-+                                         var);
-+                              os_free(ret);
-+                              ret = NULL;
-+                      }
-+
-+                      return ret;
-+              }
-       }
- 
-       return NULL;
-@@ -2790,6 +2807,8 @@ int wpa_config_set_cred(struct wpa_cred *cred, const c
- 
-       if (os_strcmp(var, "password") == 0 &&
-           os_strncmp(value, "ext:", 4) == 0) {
-+              if (has_newline(value))
-+                      return -1;
-               str_clear_free(cred->password);
-               cred->password = os_strdup(value);
-               cred->ext_password = 1;
-@@ -2840,9 +2859,14 @@ int wpa_config_set_cred(struct wpa_cred *cred, const c
-       }
- 
-       val = wpa_config_parse_string(value, &len);
--      if (val == NULL) {
-+      if (val == NULL ||
-+          (os_strcmp(var, "excluded_ssid") != 0 &&
-+           os_strcmp(var, "roaming_consortium") != 0 &&
-+           os_strcmp(var, "required_roaming_consortium") != 0 &&
-+           has_newline(val))) {
-               wpa_printf(MSG_ERROR, "Line %d: invalid field '%s' string "
-                          "value '%s'.", line, var, value);
-+              os_free(val);
-               return -1;
-       }
- 
-@@ -3643,6 +3667,12 @@ static int wpa_global_config_parse_str(const struct gl
-               wpa_printf(MSG_ERROR, "Line %d: too long %s (len=%lu "
-                          "max_len=%ld)", line, data->name,
-                          (unsigned long) len, (long) data->param3);
-+              return -1;
-+      }
-+
-+      if (has_newline(pos)) {
-+              wpa_printf(MSG_ERROR, "Line %d: invalid %s value with newline",
-+                         line, data->name);
-               return -1;
-       }
- 
Index: patches/patch-wpa_supplicant_main_c
===================================================================
RCS file: 
/cvs/ports/security/wpa_supplicant/patches/patch-wpa_supplicant_main_c,v
retrieving revision 1.2
diff -u -p -r1.2 patch-wpa_supplicant_main_c
--- patches/patch-wpa_supplicant_main_c 29 Sep 2015 11:57:54 -0000      1.2
+++ patches/patch-wpa_supplicant_main_c 3 Oct 2016 09:35:58 -0000
@@ -2,19 +2,19 @@ $OpenBSD: patch-wpa_supplicant_main_c,v 
 
 Remove Linuxisms from usage()
 
---- wpa_supplicant/main.c.orig Sun Sep 27 21:02:05 2015
-+++ wpa_supplicant/main.c      Mon Sep 28 09:35:05 2015
-@@ -68,7 +68,7 @@ static void usage(void)
-              "  -i = interface name\n"
-              "  -I = additional configuration file\n"
+--- wpa_supplicant/main.c.orig Mon Oct  3 11:10:23 2016
++++ wpa_supplicant/main.c      Mon Oct  3 11:11:42 2016
+@@ -66,7 +66,7 @@ static void usage(void)
+              "  -c = Configuration file\n"
+              "  -C = ctrl_interface parameter (only used if -c is not)\n"
               "  -d = increase debugging verbosity (-dd even more)\n"
 -             "  -D = driver name (can be multiple drivers: nl80211,wext)\n"
 +             "  -D = driver name\n"
-              "  -e = entropy file\n");
+              "  -e = entropy file\n"
  #ifdef CONFIG_DEBUG_FILE
-       printf("  -f = log output to debug file instead of stdout\n");
-@@ -102,8 +102,7 @@ static void usage(void)
-              "  -N = start describing new interface\n");
+              "  -f = log output to debug file instead of stdout\n"
+@@ -105,8 +105,7 @@ static void usage(void)
+              "  -W = wait for a control interface monitor before starting\n");
  
        printf("example:\n"
 -             "  wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf\n",

Reply via email to