From: Christophe Jaillet Date: Fri, 25 Sep 2020 21:14:33 +0000 (+0000) Subject: Merge r1874011, r1874055, r1874062 from trunk X-Git-Tag: 2.4.47~264 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f3977b305dd8beb35378124c3aba0b124da6baa8;p=thirdparty%2Fapache%2Fhttpd.git Merge r1874011, r1874055, r1874062 from trunk * event, worker: avoid UBSan exception calling memcpy(,NULL,0) at startup. Submitted by: jorton, jailletc36, ylavic Reviewed by: jailletc36, rpluem, jorton Backported by: jailletc36 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1882029 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/mpm/event/event.c b/server/mpm/event/event.c index 1cba5d406af..5f31a88fa24 100644 --- a/server/mpm/event/event.c +++ b/server/mpm/event/event.c @@ -3335,8 +3335,9 @@ static int event_open_logs(apr_pool_t * p, apr_pool_t * plog, new_max = num_buckets; } new_ptr = (int *)apr_palloc(ap_pglobal, new_max * sizeof(int)); - memcpy(new_ptr, retained->idle_spawn_rate, - retained->mpm->num_buckets * sizeof(int)); + if (retained->idle_spawn_rate) /* NULL at startup */ + memcpy(new_ptr, retained->idle_spawn_rate, + retained->mpm->num_buckets * sizeof(int)); retained->idle_spawn_rate = new_ptr; retained->mpm->max_buckets = new_max; } diff --git a/server/mpm/worker/worker.c b/server/mpm/worker/worker.c index 316ebfebad7..ccaeeba9ce5 100644 --- a/server/mpm/worker/worker.c +++ b/server/mpm/worker/worker.c @@ -1962,8 +1962,9 @@ static int worker_open_logs(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, new_max = num_buckets; } new_ptr = (int *)apr_palloc(ap_pglobal, new_max * sizeof(int)); - memcpy(new_ptr, retained->idle_spawn_rate, - retained->mpm->num_buckets * sizeof(int)); + if (retained->idle_spawn_rate) /* NULL at startup */ + memcpy(new_ptr, retained->idle_spawn_rate, + retained->mpm->num_buckets * sizeof(int)); retained->idle_spawn_rate = new_ptr; retained->mpm->max_buckets = new_max; }