diff options
author | Daniel Stenberg <daniel@haxx.se> | 2014-12-14 17:34:02 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-12-14 17:34:02 +0100 |
commit | b13923f0f7ad697792de96adbf51867122f3ee4f (patch) | |
tree | 30e1e7aa6c7dbf8ba8f3feb19ef90194ed33fa7c /lib | |
parent | 212e3e26bc711c4bd2e0a1c2bbc14b4e40506917 (diff) |
darwinssl: aprintf() to allocate the session key
... to avoid using a fixed memory size that risks being too large or too
small.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/vtls/curl_darwinssl.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/vtls/curl_darwinssl.c b/lib/vtls/curl_darwinssl.c index f0e196301..b798acb89 100644 --- a/lib/vtls/curl_darwinssl.c +++ b/lib/vtls/curl_darwinssl.c @@ -1468,7 +1468,7 @@ static CURLcode darwinssl_connect_step1(struct connectdata *conn, /* Check if there's a cached ID we can/should use here! */ if(!Curl_ssl_getsessionid(conn, (void **)&ssl_sessionid, - &ssl_sessionid_len)) { + &ssl_sessionid_len)) { /* we got a session id, use it! */ err = SSLSetPeerID(connssl->ssl_ctx, ssl_sessionid, ssl_sessionid_len); if(err != noErr) { @@ -1482,10 +1482,9 @@ static CURLcode darwinssl_connect_step1(struct connectdata *conn, to starting the handshake. */ else { CURLcode retcode; - - ssl_sessionid = malloc(256*sizeof(char)); - ssl_sessionid_len = snprintf(ssl_sessionid, 256, "curl:%s:%hu", - conn->host.name, conn->remote_port); + ssl_sessionid = aprintf(ssl_sessionid, "curl:%s:%hu", + conn->host.name, conn->remote_port); + ssl_sessionid_len = strlen(ssl_sessionid); err = SSLSetPeerID(connssl->ssl_ctx, ssl_sessionid, ssl_sessionid_len); if(err != noErr) { failf(data, "SSL: SSLSetPeerID() failed: OSStatus %d", err); |