mirror of
https://github.com/apache/httpd.git
synced 2025-08-16 16:17:23 +00:00
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:
2
changes-entries/pr64598.txt
Normal file
2
changes-entries/pr64598.txt
Normal file
@ -0,0 +1,2 @@
|
||||
*) mod_proxy_uwsgi: Fix a crash when sending environment variables with no
|
||||
value. PR 64598 [Ruediger Pluem]
|
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user