Author: rhuijben Date: Wed Nov 18 19:09:47 2015 New Revision: 1715037 URL: http://svn.apache.org/viewvc?rev=1715037&view=rev Log: Don't segfault when explicit setting the config to NULL on a ssl bucket.
This can happen when putting something in an aggregate that didn't have a config set on it. * buckets/ssl_buckets.c Don't try to read from NULL configs. * config_store.c (serf_config_get_object): Don't try to read a NULL config. Modified: serf/trunk/buckets/ssl_buckets.c serf/trunk/config_store.c Modified: serf/trunk/buckets/ssl_buckets.c URL: http://svn.apache.org/viewvc/serf/trunk/buckets/ssl_buckets.c?rev=1715037&r1=1715036&r2=1715037&view=diff ============================================================================== --- serf/trunk/buckets/ssl_buckets.c (original) +++ serf/trunk/buckets/ssl_buckets.c Wed Nov 18 19:09:47 2015 @@ -2337,13 +2337,15 @@ static apr_status_t serf_ssl_set_config( } } - status = serf_config_get_string(config, SERF_CONFIG_CONN_PIPELINING, - &pipelining); - if (status) - return status; + if (config) { + status = serf_config_get_string(config, SERF_CONFIG_CONN_PIPELINING, + &pipelining); + if (status) + return status; - if (strcmp(pipelining, "Y") == 0) { - SSL_CTX_set_info_callback(ssl_ctx->ctx, detect_renegotiate); + if (strcmp(pipelining, "Y") == 0) { + SSL_CTX_set_info_callback(ssl_ctx->ctx, detect_renegotiate); + } } return err_status; Modified: serf/trunk/config_store.c URL: http://svn.apache.org/viewvc/serf/trunk/config_store.c?rev=1715037&r1=1715036&r2=1715037&view=diff ============================================================================== --- serf/trunk/config_store.c (original) +++ serf/trunk/config_store.c Wed Nov 18 19:09:47 2015 @@ -332,6 +332,10 @@ apr_status_t serf_config_get_object(serf { serf__config_hdr_t *target; + if (config == NULL) { + *value = NULL; + return APR_EINVARG; + } if (key & SERF_CONFIG_PER_CONTEXT) target = config->per_context; else if (key & SERF_CONFIG_PER_HOST)