November 2023 Security Updates
OBS-URL: https://build.opensuse.org/package/show/server:database:postgresql/postgresql12?expand=0&rev=93
This commit is contained in:
parent
9e5cf987b7
commit
6923d19d72
@ -14,21 +14,13 @@ causes the JIT to fail at runtime.
|
|||||||
|
|
||||||
--- src/backend/jit/llvm/llvmjit.c.orig
|
--- src/backend/jit/llvm/llvmjit.c.orig
|
||||||
+++ src/backend/jit/llvm/llvmjit.c
|
+++ src/backend/jit/llvm/llvmjit.c
|
||||||
@@ -101,6 +101,7 @@ LLVMValueRef FuncExecEvalSysVar;
|
@@ -736,6 +736,35 @@ llvm_compile_module(LLVMJitContext *cont
|
||||||
LLVMValueRef FuncExecAggTransReparent;
|
|
||||||
LLVMValueRef FuncExecAggInitGroup;
|
|
||||||
|
|
||||||
+LLVMModuleRef mod = NULL;
|
|
||||||
|
|
||||||
static bool llvm_session_initialized = false;
|
|
||||||
static size_t llvm_generation = 0;
|
|
||||||
@@ -742,6 +743,35 @@ llvm_compile_module(LLVMJitContext *cont
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
+ * For the systemz target, LLVM uses a different datalayout for z13 and newer
|
+ * For the systemz target, LLVM uses a different datalayout for z13 and newer
|
||||||
+ * CPUs than it does for older CPUs. This can cause a mismatch in datalayouts
|
+ * CPUs than it does for older CPUs. This can cause a mismatch in datalayouts
|
||||||
+ * in the case where the llvm_types_module (mod) is compiled with a pre-z13 CPU
|
+ * in the case where the llvm_types_module is compiled with a pre-z13 CPU
|
||||||
+ * and the JIT is running on z13 or newer.
|
+ * and the JIT is running on z13 or newer.
|
||||||
+ * See computeDataLayout() function in
|
+ * See computeDataLayout() function in
|
||||||
+ * llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp for information on the
|
+ * llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp for information on the
|
||||||
@ -46,7 +38,7 @@ causes the JIT to fail at runtime.
|
|||||||
+ return false;
|
+ return false;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ llvm_context = LLVMGetModuleContext(mod);
|
+ llvm_context = LLVMGetModuleContext(llvm_types_module);
|
||||||
+ vec_type = LLVMVectorType(LLVMIntTypeInContext(llvm_context, 32), 4);
|
+ vec_type = LLVMVectorType(LLVMIntTypeInContext(llvm_context, 32), 4);
|
||||||
+ llvm_layoutref = LLVMCreateTargetData(llvm_layout);
|
+ llvm_layoutref = LLVMCreateTargetData(llvm_layout);
|
||||||
+ ret = (LLVMABIAlignmentOfType(llvm_layoutref, vec_type) == 16);
|
+ ret = (LLVMABIAlignmentOfType(llvm_layoutref, vec_type) == 16);
|
||||||
@ -58,7 +50,7 @@ causes the JIT to fail at runtime.
|
|||||||
* Per session initialization.
|
* Per session initialization.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
@@ -750,6 +780,7 @@ llvm_session_initialize(void)
|
@@ -744,6 +773,7 @@ llvm_session_initialize(void)
|
||||||
MemoryContext oldcontext;
|
MemoryContext oldcontext;
|
||||||
char *error = NULL;
|
char *error = NULL;
|
||||||
char *cpu = NULL;
|
char *cpu = NULL;
|
||||||
@ -66,7 +58,7 @@ causes the JIT to fail at runtime.
|
|||||||
char *features = NULL;
|
char *features = NULL;
|
||||||
LLVMTargetMachineRef opt0_tm;
|
LLVMTargetMachineRef opt0_tm;
|
||||||
LLVMTargetMachineRef opt3_tm;
|
LLVMTargetMachineRef opt3_tm;
|
||||||
@@ -781,10 +812,17 @@ llvm_session_initialize(void)
|
@@ -775,10 +805,17 @@ llvm_session_initialize(void)
|
||||||
* features not all CPUs have (weird, huh).
|
* features not all CPUs have (weird, huh).
|
||||||
*/
|
*/
|
||||||
cpu = LLVMGetHostCPUName();
|
cpu = LLVMGetHostCPUName();
|
||||||
@ -85,7 +77,7 @@ causes the JIT to fail at runtime.
|
|||||||
opt0_tm =
|
opt0_tm =
|
||||||
LLVMCreateTargetMachine(llvm_targetref, llvm_triple, cpu, features,
|
LLVMCreateTargetMachine(llvm_targetref, llvm_triple, cpu, features,
|
||||||
LLVMCodeGenLevelNone,
|
LLVMCodeGenLevelNone,
|
||||||
@@ -798,8 +836,13 @@ llvm_session_initialize(void)
|
@@ -792,8 +829,13 @@ llvm_session_initialize(void)
|
||||||
|
|
||||||
LLVMDisposeMessage(cpu);
|
LLVMDisposeMessage(cpu);
|
||||||
cpu = NULL;
|
cpu = NULL;
|
||||||
@ -100,11 +92,3 @@ causes the JIT to fail at runtime.
|
|||||||
|
|
||||||
/* force symbols in main binary to be loaded */
|
/* force symbols in main binary to be loaded */
|
||||||
LLVMLoadLibraryPermanently(NULL);
|
LLVMLoadLibraryPermanently(NULL);
|
||||||
@@ -952,7 +995,6 @@ llvm_create_types(void)
|
|
||||||
char path[MAXPGPATH];
|
|
||||||
LLVMMemoryBufferRef buf;
|
|
||||||
char *msg;
|
|
||||||
- LLVMModuleRef mod = NULL;
|
|
||||||
|
|
||||||
snprintf(path, MAXPGPATH, "%s/%s", pkglib_path, "llvmjit_types.bc");
|
|
||||||
|
|
||||||
|
3
postgresql-12.17.tar.bz2
Normal file
3
postgresql-12.17.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:93e8e1b23981d5f03c6c5763f77b28184c1ce4db7194fa466e2edb65d9c1c5f6
|
||||||
|
size 21181616
|
1
postgresql-12.17.tar.bz2.sha256
Normal file
1
postgresql-12.17.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
|||||||
|
93e8e1b23981d5f03c6c5763f77b28184c1ce4db7194fa466e2edb65d9c1c5f6 postgresql-12.17.tar.bz2
|
@ -1,3 +1,35 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 8 14:37:39 UTC 2023 - Reinhard Max <max@suse.com>
|
||||||
|
|
||||||
|
- Update to 12.17:
|
||||||
|
* bsc#1216962, CVE-2023-5868: Fix handling of unknown-type
|
||||||
|
arguments in DISTINCT "any" aggregate functions. This error led
|
||||||
|
to a text-type value being interpreted as an unknown-type value
|
||||||
|
(that is, a zero-terminated string) at runtime. This could
|
||||||
|
result in disclosure of server memory following the text value.
|
||||||
|
* bsc#1216961, CVE-2023-5869: Detect integer overflow while
|
||||||
|
computing new array dimensions. When assigning new elements to
|
||||||
|
array subscripts that are outside the current array bounds, an
|
||||||
|
undetected integer overflow could occur in edge cases. Memory
|
||||||
|
stomps that are potentially exploitable for arbitrary code
|
||||||
|
execution are possible, and so is disclosure of server memory.
|
||||||
|
* bsc#1216960, CVE-2023-5870: Prevent the pg_signal_backend role
|
||||||
|
from signalling background workers and autovacuum processes.
|
||||||
|
The documentation says that pg_signal_backend cannot issue
|
||||||
|
signals to superuser-owned processes. It was able to signal
|
||||||
|
these background processes, though, because they advertise a
|
||||||
|
role OID of zero. Treat that as indicating superuser ownership.
|
||||||
|
The security implications of cancelling one of these process
|
||||||
|
types are fairly small so far as the core code goes (we'll just
|
||||||
|
start another one), but extensions might add background workers
|
||||||
|
that are more vulnerable.
|
||||||
|
Also ensure that the is_superuser parameter is set correctly in
|
||||||
|
such processes. No specific security consequences are known for
|
||||||
|
that oversight, but it might be significant for some extensions.
|
||||||
|
* Add support for LLVM 16 and 17
|
||||||
|
* https://www.postgresql.org/about/news/2749
|
||||||
|
* https://www.postgresql.org/docs/12/release-12-17.html
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Oct 31 10:57:13 UTC 2023 - Reinhard Max <max@suse.com>
|
Tue Oct 31 10:57:13 UTC 2023 - Reinhard Max <max@suse.com>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define pgversion 12.16
|
%define pgversion 12.17
|
||||||
%define pgmajor 12
|
%define pgmajor 12
|
||||||
%define buildlibs 0
|
%define buildlibs 0
|
||||||
%define tarversion %{pgversion}
|
%define tarversion %{pgversion}
|
||||||
@ -797,11 +797,9 @@ awk -v P=%buildroot '/^(%lang|[^%])/{print P $NF}' libpq.files libecpg.files | x
|
|||||||
|
|
||||||
%post -n %pgname-%devel
|
%post -n %pgname-%devel
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
/usr/share/postgresql/install-alternatives %pgmajor
|
|
||||||
|
|
||||||
%postun -n %pgname-%devel
|
%postun -n %pgname-%devel
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
/usr/share/postgresql/install-alternatives %pgmajor
|
|
||||||
|
|
||||||
%if %{with server_devel}
|
%if %{with server_devel}
|
||||||
%post server-devel
|
%post server-devel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user