]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix buffer size parameter for exported keying material.
authorDaniel Kubec <niel@rtfm.cz>
Wed, 27 Apr 2016 06:00:34 +0000 (08:00 +0200)
committerGert Doering <gert@greenie.muc.de>
Wed, 27 Apr 2016 17:53:00 +0000 (19:53 +0200)
Commit 41e4b67a229e774ebc57a882c386e10d80e10e7e broke the exported
keying material functionality while addressing lack of variable-length
arrays in MSVC compilers - turning an array into a gc_malloc()'ed
pointer, but still using "sizeof(ekm)" for buffer size - which is
now "4" (unsigned char *), not the actual buffer length...

Fixed!

Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <49496.109.81.184.65.1461736834.squirrel@mail.actumg2.cz>
URL: http://article.gmane.org/gmane.network.openvpn.devel/11509

Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/ssl_openssl.c

index ca9b67ba7f193c5ba69927a427ab5e9e90935e2b..8909ca3b864d46212e3246766605732b969d63c2 100644 (file)
@@ -144,7 +144,7 @@ key_state_export_keying_material(struct key_state_ssl *ssl,
       struct gc_arena gc = gc_new();
       unsigned char* ekm = (unsigned char*) gc_malloc(size, true, &gc);
 
-      if (SSL_export_keying_material(ssl->ssl, ekm, sizeof(ekm),
+      if (SSL_export_keying_material(ssl->ssl, ekm, size,
           session->opt->ekm_label, session->opt->ekm_label_size, NULL, 0, 0))
        {
          unsigned int len = (size * 2) + 2;