orc/backport-0002-CVE-2024-40897.patch
2024-08-01 11:36:54 +08:00

56 lines
1.6 KiB
Diff

From abd75edff9de9a06d0531b9db50963a0da42145c Mon Sep 17 00:00:00 2001
From: "L. E. Segovia" <amy@centricular.com>
Date: Tue, 9 Jul 2024 12:03:53 -0300
Subject: [PATCH] orccompiler, orcparse: Use secure UCRT printing functions on
Windows
See #69
Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/191>
---
orc/orccompiler.c | 5 ++++-
orc/orcparse.c | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/orc/orccompiler.c b/orc/orccompiler.c
index a1c9699..8131b9c 100644
--- a/orc/orccompiler.c
+++ b/orc/orccompiler.c
@@ -1306,12 +1306,15 @@ static void
orc_compiler_error_valist (OrcCompiler *compiler, const char *fmt,
va_list args)
{
- char *s;
+ char *s = NULL;
if (compiler->error_msg) return;
#ifdef HAVE_VASPRINTF
vasprintf (&s, fmt, args);
+#elif defined(_UCRT)
+ s = malloc (ORC_COMPILER_ERROR_BUFFER_SIZE);
+ vsnprintf_s (s, ORC_COMPILER_ERROR_BUFFER_SIZE, _TRUNCATE, fmt, args);
#else
s = malloc (ORC_COMPILER_ERROR_BUFFER_SIZE);
vsnprintf (s, ORC_COMPILER_ERROR_BUFFER_SIZE, fmt, args);
diff --git a/orc/orcparse.c b/orc/orcparse.c
index f90b5ff..e24f698 100644
--- a/orc/orcparse.c
+++ b/orc/orcparse.c
@@ -431,8 +431,11 @@ orc_parse_log_valist (OrcParser *parser, const char *format, va_list args)
}
#ifdef HAVE_VASPRINTF
- char *s;
+ char *s = NULL;
vasprintf (&s, format, args);
+#elif defined(_UCRT)
+ char s[ORC_ERROR_LENGTH] = { '\0' };
+ vsnprintf_s (s, ORC_ERROR_LENGTH, _TRUNCATE, format, args);
#else
char s[ORC_ERROR_LENGTH] = { '\0' };
vsnprintf (s, sizeof (s), format, args);
--
2.43.0