diff options
author | douglas steinwand <dzs-curl@dzs.fx.org> | 2010-03-22 09:25:03 +0100 |
---|---|---|
committer | Kamil Dudka <kdudka@redhat.com> | 2010-03-22 09:25:03 +0100 |
commit | abcea311e3b3178e8848e4da5acdf50afd89e4ce (patch) | |
tree | 59185fe8c2816a5ce1881bf57698c291882fe4c3 /lib | |
parent | 1609685fc2f470600204094d39ea55f63a445abf (diff) | |
download | curl-abcea311e3b3178e8848e4da5acdf50afd89e4ce.tar.gz |
Fix insufficient initialization in Curl_clone_ssl_config()
which could have caused a double free when reusing curl handle.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sslgen.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/sslgen.c b/lib/sslgen.c index 6707e0af6..4e88bba86 100644 --- a/lib/sslgen.c +++ b/lib/sslgen.c @@ -105,30 +105,40 @@ Curl_clone_ssl_config(struct ssl_config_data *source, if(!dest->CAfile) return FALSE; } + else + dest->CAfile = NULL; if(source->CApath) { dest->CApath = strdup(source->CApath); if(!dest->CApath) return FALSE; } + else + dest->CApath = NULL; if(source->cipher_list) { dest->cipher_list = strdup(source->cipher_list); if(!dest->cipher_list) return FALSE; } + else + dest->cipher_list = NULL; if(source->egdsocket) { dest->egdsocket = strdup(source->egdsocket); if(!dest->egdsocket) return FALSE; } + else + dest->egdsocket = NULL; if(source->random_file) { dest->random_file = strdup(source->random_file); if(!dest->random_file) return FALSE; } + else + dest->random_file = NULL; return TRUE; } |