diff --git a/mod_ruby.c b/mod_ruby.c index ebb2940..15205e8 100644 --- a/mod_ruby.c +++ b/mod_ruby.c @@ -1177,7 +1177,7 @@ static void per_request_cleanup(request_rec *r, int flush) restore_env(r->pool, rconf->saved_env); } rb_progname = Qnil; - if (dconf->gc_per_request) + if (dconf && dconf->gc_per_request) rb_gc(); } diff --git a/request.c b/request.c index c13bf16..7a74b08 100644 --- a/request.c +++ b/request.c @@ -192,14 +192,16 @@ static VALUE apache_request_new(request_rec *r) data->cookies = rb_hash_new(); data->param_table = Qnil; data->options = rb_hash_new(); - opts_arr = apr_table_elts(dconf->options); - opts = (table_entry *) opts_arr->elts; - for (i = 0; i < opts_arr->nelts; i++) { - if (opts[i].key == NULL) - continue; - rb_hash_aset(data->options, - rb_tainted_str_new2(opts[i].key), - rb_tainted_str_new2(opts[i].val)); + if (dconf) { + opts_arr = apr_table_elts(dconf->options); + opts = (table_entry *) opts_arr->elts; + for (i = 0; i < opts_arr->nelts; i++) { + if (opts[i].key == NULL) + continue; + rb_hash_aset(data->options, + rb_tainted_str_new2(opts[i].key), + rb_tainted_str_new2(opts[i].val)); + } } rb_apache_register_object(obj);