Author: ivan
Date: Tue Oct  6 15:00:48 2026
New Revision: 1938822

Log:
Fix a race condition in svnserve logging when running in threaded mode.

Memory allocations from the shared logger->pool were being performed 
before the logger->mutex was acquired, leading to potential pool 
corruption and SEGV crashes during high-frequency concurrent logging 
events (e.g. client connection reset bursts).

* subversion/svnserve/logger.c
  (log_message): Move apr_palloc() calls inside the mutex-protected critical
   section.

Patch by: eric.boehm {at} broadcom.com

Modified:
   subversion/trunk/subversion/svnserve/logger.c

Modified: subversion/trunk/subversion/svnserve/logger.c
==============================================================================
--- subversion/trunk/subversion/svnserve/logger.c       Tue Oct  6 14:16:26 
2026        (r1938821)
+++ subversion/trunk/subversion/svnserve/logger.c       Tue Oct  6 15:00:48 
2026        (r1938822)
@@ -104,10 +104,11 @@ log_message(logger_t *logger,
 
       /* 8192 from MAX_STRING_LEN in from httpd-2.2.4/include/httpd.h */
       const apr_size_t errstr_size = 8192;
-      char *errstr = apr_palloc(logger->pool, errstr_size);
+      char *errstr;
 
       svn_error_clear(svn_mutex__lock(logger->mutex));
 
+      errstr = apr_palloc(logger->pool, errstr_size);
       timestr = svn_time_to_cstring(apr_time_now(), logger->pool);
       remote_host = client_info && client_info->remote_host
                   ? client_info->remote_host

Reply via email to