Avoid NULL pointer dereferences for empty environment variable values

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1879878 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Ruediger Pluem
2020-07-15 08:24:13 +00:00
parent d8433964eb
commit 57df7f972e
2 changed files with 7 additions and 3 deletions

View File

@ -0,0 +1,2 @@
*) mod_proxy_uwsgi: Fix a crash when sending environment variables with no
value. PR 64598 [Ruediger Pluem]

View File

@ -175,7 +175,7 @@ static int uwsgi_send_headers(request_rec *r, proxy_conn_rec * conn)
env = (apr_table_entry_t *) env_table->elts;
for (j = 0; j < env_table->nelts; ++j) {
headerlen += 2 + strlen(env[j].key) + 2 + strlen(env[j].val);
headerlen += 2 + strlen(env[j].key) + 2 + (env[j].val ? strlen(env[j].val) : 0);
}
ptr = buf = apr_palloc(r->pool, headerlen);
@ -189,10 +189,12 @@ static int uwsgi_send_headers(request_rec *r, proxy_conn_rec * conn)
memcpy(ptr, env[j].key, keylen);
ptr += keylen;
vallen = strlen(env[j].val);
vallen = env[j].val ? strlen(env[j].val) : 0;
*ptr++ = (apr_byte_t) (vallen & 0xff);
*ptr++ = (apr_byte_t) ((vallen >> 8) & 0xff);
memcpy(ptr, env[j].val, vallen);
if (env[j].val) {
memcpy(ptr, env[j].val, vallen);
}
ptr += vallen;
}