This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git


The following commit(s) were added to refs/heads/master by this push:
     new f2eb65a2 Add LOG4CXX_CHAR=wchar_t with clang GitHub action (#474)
f2eb65a2 is described below

commit f2eb65a27d76cc88d75e3b5a715af48da95f1068
Author: Stephen Webb <[email protected]>
AuthorDate: Sun Feb 2 13:33:35 2025 +1100

    Add LOG4CXX_CHAR=wchar_t with clang GitHub action (#474)
---
 .github/workflows/log4cxx-ubuntu.yml             | 5 +++++
 src/fuzzers/cpp/TimeBasedRollingPolicyFuzzer.cpp | 2 +-
 src/main/cpp/syslogappender.cpp                  | 3 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/log4cxx-ubuntu.yml 
b/.github/workflows/log4cxx-ubuntu.yml
index d38dd3ef..ac0f08ad 100644
--- a/.github/workflows/log4cxx-ubuntu.yml
+++ b/.github/workflows/log4cxx-ubuntu.yml
@@ -36,6 +36,7 @@ jobs:
             multithread: OFF
             exitevents: OFF
             fuzzers: OFF
+            logchar: utf-8
           - name: ubuntu20-clang
             os: ubuntu-20.04
             cxx: clang++
@@ -46,6 +47,7 @@ jobs:
             multithread: OFF
             exitevents: OFF
             fuzzers: ON
+            logchar: utf-8
           - name: ubuntu22-gcc
             os: ubuntu-22.04
             cxx: g++
@@ -56,6 +58,7 @@ jobs:
             multithread: ON
             exitevents: ON
             fuzzers: OFF
+            logchar: utf-8
           - name: ubuntu22-clang
             os: ubuntu-22.04
             cxx: clang++
@@ -66,6 +69,7 @@ jobs:
             multithread: ON
             exitevents: OFF
             fuzzers: ON
+            logchar: wchar_t
 
     steps:
     - uses: actions/checkout@v4
@@ -103,6 +107,7 @@ jobs:
           -DLOG4CXX_MULTIPROCESS_ROLLING_FILE_APPENDER=${{ matrix.multiprocess 
}} \
           -DLOG4CXX_EVENTS_AT_EXIT=${{ matrix.exitevents }} \
           -DBUILD_FUZZERS=${{ matrix.fuzzers }} \
+          -DLOG4CXX_CHAR=${{ matrix.logchar }} \
           ..
         cmake --build .
 
diff --git a/src/fuzzers/cpp/TimeBasedRollingPolicyFuzzer.cpp 
b/src/fuzzers/cpp/TimeBasedRollingPolicyFuzzer.cpp
index df7562a7..a1d92b91 100644
--- a/src/fuzzers/cpp/TimeBasedRollingPolicyFuzzer.cpp
+++ b/src/fuzzers/cpp/TimeBasedRollingPolicyFuzzer.cpp
@@ -47,7 +47,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, 
size_t size) {
     } else {
            tbrp->setFileNamePattern(LogString(LOG4CXX_STR("fuzz-%d{" 
DATE_PATTERN "}.zip")));
     }
-    rfa->setFile(LOG4CXX_STR(LOG4CXX_STR("test.log")));
+    rfa->setFile(LOG4CXX_STR("test.log"));
     
     tbrp->activateOptions(pool);
     rfa->setRollingPolicy(tbrp);
diff --git a/src/main/cpp/syslogappender.cpp b/src/main/cpp/syslogappender.cpp
index 3a5a0e2b..77540b6f 100644
--- a/src/main/cpp/syslogappender.cpp
+++ b/src/main/cpp/syslogappender.cpp
@@ -334,8 +334,9 @@ void SyslogAppender::append(const spi::LoggingEventPtr& 
event, Pool& p)
                for (auto const& item : packets)
                {
                        // use of "%s" to avoid a security hole
+                       LOG4CXX_ENCODE_CHAR(itemStr, item);
                        ::syslog(_priv->syslogFacility | 
event->getLevel()->getSyslogEquivalent(),
-                               "%s", item.c_str());
+                               "%s", itemStr.c_str());
                }
 
                return;

Reply via email to