Changeset 368b574 in mod_gnutls for src/gnutls_hooks.c


Ignore:
Timestamp:
Aug 18, 2010, 2:41:36 PM (9 years ago)
Author:
Nikos Mavrogiannopoulos <nmav@…>
Branches:
debian/master, debian/stretch-backports, jessie-backports, master, msva, upstream
Children:
41dd507
Parents:
7fec961
git-author:
Nikos Mavrogiannopoulos <nmav@…> (08/17/10 13:04:34)
git-committer:
Nikos Mavrogiannopoulos <nmav@…> (08/18/10 14:41:36)
Message:

Safer usage of session variable to prevent segmentation faults on closure. Should solve issue #106.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_hooks.c

    r7fec961 r368b574  
    487487const char *mgs_hook_http_scheme(const request_rec * r)
    488488{
    489     mgs_srvconf_rec *sc =
     489    mgs_srvconf_rec *sc;
     490   
     491    if (r == NULL)
     492        return NULL;
     493   
     494    sc =
    490495        (mgs_srvconf_rec *) ap_get_module_config(r->server->module_config,
    491496                                                 &gnutls_module);
     
    501506apr_port_t mgs_hook_default_port(const request_rec * r)
    502507{
    503     mgs_srvconf_rec *sc =
     508    mgs_srvconf_rec *sc;
     509   
     510    if (r == NULL)
     511        return 0;
     512   
     513    sc =
    504514        (mgs_srvconf_rec *) ap_get_module_config(r->server->module_config,
    505515                                                 &gnutls_module);
     
    580590#endif
    581591
     592    if (session == NULL)
     593        return NULL;
     594
    582595    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
    583596    ctxt = gnutls_transport_get_ptr(session);
     
    694707{
    695708    mgs_handle_t *ctxt;
    696     mgs_srvconf_rec *sc =
     709    mgs_srvconf_rec *sc;
     710
     711    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
     712   
     713    if (c == NULL)
     714        return DECLINED;
     715   
     716    sc =
    697717        (mgs_srvconf_rec *) ap_get_module_config(c->base_server->
    698718                                                 module_config,
    699719                                                 &gnutls_module);
    700720
    701     _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
    702721    if (!(sc && (sc->enabled == GNUTLS_ENABLED_TRUE))) {
    703722        return DECLINED;
     
    733752    int rv = OK;
    734753
     754    if (r == NULL)
     755        return DECLINED;
     756
    735757    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
    736758    apr_table_t *env = r->subprocess_env;
     
    739761        ap_get_module_config(r->connection->conn_config, &gnutls_module);
    740762
    741     if (!ctxt) {
     763    if (!ctxt || ctxt->session == NULL) {
    742764        return DECLINED;
    743765    }
     
    805827    int rv;
    806828    mgs_handle_t *ctxt;
    807     mgs_dirconf_rec *dc = ap_get_module_config(r->per_dir_config,
     829    mgs_dirconf_rec *dc;
     830   
     831    if (r == NULL)
     832        return DECLINED;
     833   
     834    dc = ap_get_module_config(r->per_dir_config,
    808835                                               &gnutls_module);
    809836
     
    812839        ap_get_module_config(r->connection->conn_config, &gnutls_module);
    813840
    814     if (!ctxt) {
     841    if (!ctxt || ctxt->session == NULL) {
    815842        return DECLINED;
    816843    }
     
    875902    size_t len;
    876903    int ret, i;
     904
     905    if (r == NULL)
     906        return;
    877907
    878908    apr_table_t *env = r->subprocess_env;
     
    9841014    size_t len;
    9851015    int ret;
     1016   
     1017    if (r == NULL)
     1018        return;
    9861019
    9871020    _gnutls_log(debug_log_fp,   "%s: %d\n", __func__, __LINE__);
     
    10521085    } cert;
    10531086    apr_time_t expiration_time, cur_time;
     1087
     1088    if (r == NULL || ctxt == NULL || ctxt->session == NULL)
     1089        return HTTP_FORBIDDEN;
    10541090
    10551091    _gnutls_log(debug_log_fp, "%s: %d\n", __func__, __LINE__);
Note: See TracChangeset for help on using the changeset viewer.