src/http/modules/ngx_http_headers_filter_module.c:647: error: Uninitialized Value
  The value read from cv.lengths was never initialized.

src/http/modules/ngx_http_headers_filter_module.c:647:9: 
645.     }
646. 
647.     if (cv.lengths != NULL) {
             ^
648. 
649.         hcf->expires_value = ngx_palloc(cf->pool,

static char *
ngx_http_headers_expires(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{
    ngx_http_headers_conf_t *hcf = conf;
    char                              *err;
    ngx_str_t                         *value;
    ngx_int_t                          rc;
    ngx_uint_t                         n;
    ngx_http_complex_value_t           cv;
    ngx_http_compile_complex_value_t   ccv;
    if (hcf->expires != NGX_HTTP_EXPIRES_UNSET) {
        return "is duplicate";
    }
    value = cf->args->elts;
    if (cf->args->nelts == 2) {
        hcf->expires = NGX_HTTP_EXPIRES_ACCESS;
        n = 1;
    } else {
        if (ngx_strcmp(value[1].data, "modified") != 0) {
            return "invalid value";
        }
        hcf->expires = NGX_HTTP_EXPIRES_MODIFIED;
        n = 2;
    }
    ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
    ccv.cf = cf;
    ccv.value = &value[n];
    ccv.complex_value = &cv;
    if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
        return NGX_CONF_ERROR;
    }
    if (cv.lengths != NULL) {
        hcf->expires_value = ngx_palloc(cf->pool,
                                        sizeof(ngx_http_complex_value_t));
        if (hcf->expires_value == NULL) {
            return NGX_CONF_ERROR;
        }
        *hcf->expires_value = cv;
        return NGX_CONF_OK;
    }
    rc = ngx_http_parse_expires(&value[n], &hcf->expires, &hcf->expires_time,
                                &err);
    if (rc != NGX_OK) {
        return err;
    }
    return NGX_CONF_OK;
}
['static char *\nngx_http_headers_expires(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)\n{\n    ngx_http_headers_conf_t *hcf = conf;\n    char                              *err;\n    ngx_str_t                         *value;\n    ngx_int_t                          rc;\n    ngx_uint_t                         n;\n    ngx_http_complex_value_t           cv;\n    ngx_http_compile_complex_value_t   ccv;\n    if (hcf->expires != NGX_HTTP_EXPIRES_UNSET) {\n        return "is duplicate";\n    }\n    value = cf->args->elts;\n    if (cf->args->nelts == 2) {\n        hcf->expires = NGX_HTTP_EXPIRES_ACCESS;\n        n = 1;\n    } else {\n        if (ngx_strcmp(value[1].data, "modified") != 0) {\n            return "invalid value";\n        }\n        hcf->expires = NGX_HTTP_EXPIRES_MODIFIED;\n        n = 2;\n    }\n    ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));\n    ccv.cf = cf;\n    ccv.value = &value[n];\n    ccv.complex_value = &cv;\n    if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {\n        return NGX_CONF_ERROR;\n    }\n    if (cv.lengths != NULL) {\n        hcf->expires_value = ngx_palloc(cf->pool,\n                                        sizeof(ngx_http_complex_value_t));\n        if (hcf->expires_value == NULL) {\n            return NGX_CONF_ERROR;\n        }\n        *hcf->expires_value = cv;\n        return NGX_CONF_OK;\n    }\n    rc = ngx_http_parse_expires(&value[n], &hcf->expires, &hcf->expires_time,\n                                &err);\n    if (rc != NGX_OK) {\n        return err;\n    }\n    return NGX_CONF_OK;\n}']