modules/cache/mod_cache_socache.c:922: error: UNINITIALIZED_VALUE
  The value read from rv was never initialized.

modules/cache/mod_cache_socache.c:922:13: 
920.         if (APR_SUCCESS != store_table(sobj->headers_in, sobj->buffer,
921.                 sobj->buffer_len, &slider)) {
922.             ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, r, APLOGNO(02376)
                 ^
923.                     "in-headers didn't fit in buffer %s",
924.                     sobj->key);

static apr_status_t store_headers(cache_handle_t *h, request_rec *r,
        cache_info *info)
{
    cache_socache_dir_conf *dconf =
            ap_get_module_config(r->per_dir_config, &cache_socache_module);
    cache_socache_conf *conf = ap_get_module_config(r->server->module_config,
            &cache_socache_module);
    apr_size_t slider;
    apr_status_t rv;
    cache_object_t *obj = h->cache_obj;
    cache_socache_object_t *sobj = (cache_socache_object_t*) obj->vobj;
    cache_socache_info_t *socache_info;
    memcpy(&h->cache_obj->info, info, sizeof(cache_info));
    if (r->headers_out) {
        sobj->headers_out = ap_cache_cacheable_headers_out(r);
    }
    if (r->headers_in) {
        sobj->headers_in = ap_cache_cacheable_headers_in(r);
    }
    sobj->expire
            = obj->info.expire > r->request_time + dconf->maxtime ? r->request_time
                    + dconf->maxtime
                    : obj->info.expire + dconf->mintime;
    apr_pool_create(&sobj->pool, r->pool);
    sobj->buffer = apr_palloc(sobj->pool, dconf->max);
    sobj->buffer_len = dconf->max;
    socache_info = (cache_socache_info_t *) sobj->buffer;
    if (sobj->headers_out) {
        const char *vary;
        vary = apr_table_get(sobj->headers_out, "Vary");
        if (vary) {
            apr_array_header_t* varray;
            apr_uint32_t format = CACHE_SOCACHE_VARY_FORMAT_VERSION;
            memcpy(sobj->buffer, &format, sizeof(format));
            slider = sizeof(format);
            memcpy(sobj->buffer + slider, &obj->info.expire,
                    sizeof(obj->info.expire));
            slider += sizeof(obj->info.expire);
            varray = apr_array_make(r->pool, 6, sizeof(char*));
            tokens_to_array(r->pool, vary, varray);
            if (APR_SUCCESS != (rv = store_array(varray, sobj->buffer,
                    sobj->buffer_len, &slider))) {
                ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(02370)
                        "buffer too small for Vary array, caching aborted: %s",
                        obj->key);
                apr_pool_destroy(sobj->pool);
                sobj->pool = NULL;
                return rv;
            }
            if (socache_mutex) {
                apr_status_t status = apr_global_mutex_lock(socache_mutex);
                if (status != APR_SUCCESS) {
                    ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(02371)
                            "could not acquire lock, ignoring: %s", obj->key);
                    apr_pool_destroy(sobj->pool);
                    sobj->pool = NULL;
                    return status;
                }
            }
            rv = conf->provider->socache_provider->store(
                    conf->provider->socache_instance, r->server,
                    (unsigned char *) obj->key, strlen(obj->key), sobj->expire,
                    (unsigned char *) sobj->buffer, (unsigned int) slider,
                    sobj->pool);
            if (socache_mutex) {
                apr_status_t status = apr_global_mutex_unlock(socache_mutex);
                if (status != APR_SUCCESS) {
                    ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(02372)
                            "could not release lock, ignoring: %s", obj->key);
                }
            }
            if (rv != APR_SUCCESS) {
                ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, APLOGNO(02373)
                        "Vary not written to cache, ignoring: %s", obj->key);
                apr_pool_destroy(sobj->pool);
                sobj->pool = NULL;
                return rv;
            }
            obj->key = sobj->key = regen_key(r->pool, sobj->headers_in, varray,
                    sobj->name);
        }
    }
    socache_info->format = CACHE_SOCACHE_DISK_FORMAT_VERSION;
    socache_info->date = obj->info.date;
    socache_info->expire = obj->info.expire;
    socache_info->entity_version = sobj->socache_info.entity_version++;
    socache_info->request_time = obj->info.request_time;
    socache_info->response_time = obj->info.response_time;
    socache_info->status = obj->info.status;
    if (r->header_only && r->status != HTTP_NOT_MODIFIED) {
        socache_info->header_only = 1;
    }
    else {
        socache_info->header_only = sobj->socache_info.header_only;
    }
    socache_info->name_len = strlen(sobj->name);
    memcpy(&socache_info->control, &obj->info.control, sizeof(cache_control_t));
    slider = sizeof(cache_socache_info_t);
    if (slider + socache_info->name_len >= sobj->buffer_len) {
        ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(02374)
                "cache buffer too small for name: %s",
                sobj->name);
        apr_pool_destroy(sobj->pool);
        sobj->pool = NULL;
        return APR_EGENERAL;
    }
    memcpy(sobj->buffer + slider, sobj->name, socache_info->name_len);
    slider += socache_info->name_len;
    if (sobj->headers_out) {
        if (APR_SUCCESS != store_table(sobj->headers_out, sobj->buffer,
                sobj->buffer_len, &slider)) {
            ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(02375)
                    "out-headers didn't fit in buffer: %s", sobj->name);
            apr_pool_destroy(sobj->pool);
            sobj->pool = NULL;
            return APR_EGENERAL;
        }
    }
    if (sobj->headers_in) {
        if (APR_SUCCESS != store_table(sobj->headers_in, sobj->buffer,
                sobj->buffer_len, &slider)) {
            ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, r, APLOGNO(02376)
                    "in-headers didn't fit in buffer %s",
                    sobj->key);
            apr_pool_destroy(sobj->pool);
            sobj->pool = NULL;
            return APR_EGENERAL;
        }
    }
    sobj->body_offset = slider;
    return APR_SUCCESS;
}
['static apr_status_t store_headers(cache_handle_t *h, request_rec *r,\n        cache_info *info)\n{\n    cache_socache_dir_conf *dconf =\n            ap_get_module_config(r->per_dir_config, &cache_socache_module);\n    cache_socache_conf *conf = ap_get_module_config(r->server->module_config,\n            &cache_socache_module);\n    apr_size_t slider;\n    apr_status_t rv;\n    cache_object_t *obj = h->cache_obj;\n    cache_socache_object_t *sobj = (cache_socache_object_t*) obj->vobj;\n    cache_socache_info_t *socache_info;\n    memcpy(&h->cache_obj->info, info, sizeof(cache_info));\n    if (r->headers_out) {\n        sobj->headers_out = ap_cache_cacheable_headers_out(r);\n    }\n    if (r->headers_in) {\n        sobj->headers_in = ap_cache_cacheable_headers_in(r);\n    }\n    sobj->expire\n            = obj->info.expire > r->request_time + dconf->maxtime ? r->request_time\n                    + dconf->maxtime\n                    : obj->info.expire + dconf->mintime;\n    apr_pool_create(&sobj->pool, r->pool);\n    sobj->buffer = apr_palloc(sobj->pool, dconf->max);\n    sobj->buffer_len = dconf->max;\n    socache_info = (cache_socache_info_t *) sobj->buffer;\n    if (sobj->headers_out) {\n        const char *vary;\n        vary = apr_table_get(sobj->headers_out, "Vary");\n        if (vary) {\n            apr_array_header_t* varray;\n            apr_uint32_t format = CACHE_SOCACHE_VARY_FORMAT_VERSION;\n            memcpy(sobj->buffer, &format, sizeof(format));\n            slider = sizeof(format);\n            memcpy(sobj->buffer + slider, &obj->info.expire,\n                    sizeof(obj->info.expire));\n            slider += sizeof(obj->info.expire);\n            varray = apr_array_make(r->pool, 6, sizeof(char*));\n            tokens_to_array(r->pool, vary, varray);\n            if (APR_SUCCESS != (rv = store_array(varray, sobj->buffer,\n                    sobj->buffer_len, &slider))) {\n                ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(02370)\n                        "buffer too small for Vary array, caching aborted: %s",\n                        obj->key);\n                apr_pool_destroy(sobj->pool);\n                sobj->pool = NULL;\n                return rv;\n            }\n            if (socache_mutex) {\n                apr_status_t status = apr_global_mutex_lock(socache_mutex);\n                if (status != APR_SUCCESS) {\n                    ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(02371)\n                            "could not acquire lock, ignoring: %s", obj->key);\n                    apr_pool_destroy(sobj->pool);\n                    sobj->pool = NULL;\n                    return status;\n                }\n            }\n            rv = conf->provider->socache_provider->store(\n                    conf->provider->socache_instance, r->server,\n                    (unsigned char *) obj->key, strlen(obj->key), sobj->expire,\n                    (unsigned char *) sobj->buffer, (unsigned int) slider,\n                    sobj->pool);\n            if (socache_mutex) {\n                apr_status_t status = apr_global_mutex_unlock(socache_mutex);\n                if (status != APR_SUCCESS) {\n                    ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(02372)\n                            "could not release lock, ignoring: %s", obj->key);\n                }\n            }\n            if (rv != APR_SUCCESS) {\n                ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, APLOGNO(02373)\n                        "Vary not written to cache, ignoring: %s", obj->key);\n                apr_pool_destroy(sobj->pool);\n                sobj->pool = NULL;\n                return rv;\n            }\n            obj->key = sobj->key = regen_key(r->pool, sobj->headers_in, varray,\n                    sobj->name);\n        }\n    }\n    socache_info->format = CACHE_SOCACHE_DISK_FORMAT_VERSION;\n    socache_info->date = obj->info.date;\n    socache_info->expire = obj->info.expire;\n    socache_info->entity_version = sobj->socache_info.entity_version++;\n    socache_info->request_time = obj->info.request_time;\n    socache_info->response_time = obj->info.response_time;\n    socache_info->status = obj->info.status;\n    if (r->header_only && r->status != HTTP_NOT_MODIFIED) {\n        socache_info->header_only = 1;\n    }\n    else {\n        socache_info->header_only = sobj->socache_info.header_only;\n    }\n    socache_info->name_len = strlen(sobj->name);\n    memcpy(&socache_info->control, &obj->info.control, sizeof(cache_control_t));\n    slider = sizeof(cache_socache_info_t);\n    if (slider + socache_info->name_len >= sobj->buffer_len) {\n        ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(02374)\n                "cache buffer too small for name: %s",\n                sobj->name);\n        apr_pool_destroy(sobj->pool);\n        sobj->pool = NULL;\n        return APR_EGENERAL;\n    }\n    memcpy(sobj->buffer + slider, sobj->name, socache_info->name_len);\n    slider += socache_info->name_len;\n    if (sobj->headers_out) {\n        if (APR_SUCCESS != store_table(sobj->headers_out, sobj->buffer,\n                sobj->buffer_len, &slider)) {\n            ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(02375)\n                    "out-headers didn\'t fit in buffer: %s", sobj->name);\n            apr_pool_destroy(sobj->pool);\n            sobj->pool = NULL;\n            return APR_EGENERAL;\n        }\n    }\n    if (sobj->headers_in) {\n        if (APR_SUCCESS != store_table(sobj->headers_in, sobj->buffer,\n                sobj->buffer_len, &slider)) {\n            ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, r, APLOGNO(02376)\n                    "in-headers didn\'t fit in buffer %s",\n                    sobj->key);\n            apr_pool_destroy(sobj->pool);\n            sobj->pool = NULL;\n            return APR_EGENERAL;\n        }\n    }\n    sobj->body_offset = slider;\n    return APR_SUCCESS;\n}']