summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rwxr-xr-xsource/d/rust/rust.SlackBuild8
-rw-r--r--source/d/rust/rust.url6
-rw-r--r--source/k/kernel-configs/config-generic-6.1.12 (renamed from source/k/kernel-configs/config-generic-6.1.11)3
-rw-r--r--source/k/kernel-configs/config-generic-6.1.12.x64 (renamed from source/k/kernel-configs/config-generic-6.1.11.x64)2
-rw-r--r--source/k/kernel-configs/config-generic-smp-6.1.12-smp (renamed from source/k/kernel-configs/config-generic-smp-6.1.11-smp)3
-rw-r--r--source/k/kernel-configs/config-huge-6.1.12 (renamed from source/k/kernel-configs/config-huge-6.1.11)3
-rw-r--r--source/k/kernel-configs/config-huge-6.1.12.x64 (renamed from source/k/kernel-configs/config-huge-6.1.11.x64)2
-rw-r--r--source/k/kernel-configs/config-huge-smp-6.1.12-smp (renamed from source/k/kernel-configs/config-huge-smp-6.1.11-smp)3
-rw-r--r--source/kde/kde/modules/plasma2
-rw-r--r--source/kde/kde/patch/drkonqi/drkonqi.disable.kuserfeedback.patch16
-rw-r--r--source/kde/kde/patch/plasma-workspace/0001-Revert-No-icons-on-the-desktop-by-default.patch38
-rwxr-xr-xsource/l/mozjs102/mozjs102.SlackBuild1
-rw-r--r--source/l/mozjs102/patches/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch109
-rw-r--r--source/n/php/CVE-2023-0567.patch142
-rw-r--r--source/n/php/CVE-2023-0568.patch62
-rw-r--r--source/n/php/CVE-2023-0662.patch411
-rwxr-xr-xsource/n/php/php.SlackBuild5
-rw-r--r--source/x/FTBFSlog4
-rw-r--r--source/x/vulkan-sdk/VulkanTools-sdk.gcc12.diff38
-rwxr-xr-xsource/x/vulkan-sdk/vulkan-sdk.SlackBuild5
20 files changed, 707 insertions, 156 deletions
diff --git a/source/d/rust/rust.SlackBuild b/source/d/rust/rust.SlackBuild
index 6cb49f88d..1ba02bf27 100755
--- a/source/d/rust/rust.SlackBuild
+++ b/source/d/rust/rust.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=rust
SRCNAM="${PKGNAM}c"
-VERSION=${VERSION:-1.65.0}
+VERSION=${VERSION:-1.66.1}
BUILD=${BUILD:-1}
# Set this to YES to build with the system LLVM, or NO to use the bundled LLVM.
@@ -34,9 +34,9 @@ BUILD=${BUILD:-1}
SYSTEM_LLVM=${SYSTEM_LLVM:-YES}
# Bootstrap variables (might not be kept updated for latest Rust):
-RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.64.0}
-RSTAGE0_DIR=${RSTAGE0_DIR:-2022-09-22}
-CSTAGE0_VERSION=${CSTAGE0_VERSION:-1.64.0}
+RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.65.0}
+RSTAGE0_DIR=${RSTAGE0_DIR:-2022-11-03}
+CSTAGE0_VERSION=${CSTAGE0_VERSION:-1.65.0}
CSTAGE0_DIR=${CSTAGE0_DIR:-$RSTAGE0_DIR}
# Automatically determine the architecture we're building on:
diff --git a/source/d/rust/rust.url b/source/d/rust/rust.url
index b8cf863fd..134650e43 100644
--- a/source/d/rust/rust.url
+++ b/source/d/rust/rust.url
@@ -1,5 +1,5 @@
# Source code (repacked to .tar.lz):
-VERSION=1.65.0
+VERSION=1.66.1
rm -f rustc-${VERSION}-src.tar.*
lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz
lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz.asc
@@ -20,8 +20,8 @@ fi
# update the settings below, look at src/stage0.json in the Rust sources.
exit 0
-BOOTSTRAP_DATE=2022-09-22
-BOOTSTRAP_VERSION=1.64.0
+BOOTSTRAP_DATE=2022-11-03
+BOOTSTRAP_VERSION=1.65.0
BOOTSTRAP_CARGO=$BOOTSTRAP_VERSION
# i686 bootstrap:
diff --git a/source/k/kernel-configs/config-generic-6.1.11 b/source/k/kernel-configs/config-generic-6.1.12
index 0ca646dc1..91064bac5 100644
--- a/source/k/kernel-configs/config-generic-6.1.11
+++ b/source/k/kernel-configs/config-generic-6.1.12
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.11 Kernel Configuration
+# Linux/x86 6.1.12 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
@@ -11,6 +11,7 @@ CONFIG_AS_VERSION=24000
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24000
CONFIG_LLD_VERSION=0
+CONFIG_RUST_IS_AVAILABLE=y
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
diff --git a/source/k/kernel-configs/config-generic-6.1.11.x64 b/source/k/kernel-configs/config-generic-6.1.12.x64
index b5eca2161..b67fc335c 100644
--- a/source/k/kernel-configs/config-generic-6.1.11.x64
+++ b/source/k/kernel-configs/config-generic-6.1.12.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.11 Kernel Configuration
+# Linux/x86 6.1.12 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-generic-smp-6.1.11-smp b/source/k/kernel-configs/config-generic-smp-6.1.12-smp
index 7eff21de1..7fca139b3 100644
--- a/source/k/kernel-configs/config-generic-smp-6.1.11-smp
+++ b/source/k/kernel-configs/config-generic-smp-6.1.12-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.11 Kernel Configuration
+# Linux/x86 6.1.12 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
@@ -11,6 +11,7 @@ CONFIG_AS_VERSION=24000
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24000
CONFIG_LLD_VERSION=0
+CONFIG_RUST_IS_AVAILABLE=y
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
diff --git a/source/k/kernel-configs/config-huge-6.1.11 b/source/k/kernel-configs/config-huge-6.1.12
index 5ca26cbad..4815e1d0f 100644
--- a/source/k/kernel-configs/config-huge-6.1.11
+++ b/source/k/kernel-configs/config-huge-6.1.12
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.11 Kernel Configuration
+# Linux/x86 6.1.12 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
@@ -11,6 +11,7 @@ CONFIG_AS_VERSION=24000
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24000
CONFIG_LLD_VERSION=0
+CONFIG_RUST_IS_AVAILABLE=y
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
diff --git a/source/k/kernel-configs/config-huge-6.1.11.x64 b/source/k/kernel-configs/config-huge-6.1.12.x64
index 26176054a..8e52b563c 100644
--- a/source/k/kernel-configs/config-huge-6.1.11.x64
+++ b/source/k/kernel-configs/config-huge-6.1.12.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.11 Kernel Configuration
+# Linux/x86 6.1.12 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
diff --git a/source/k/kernel-configs/config-huge-smp-6.1.11-smp b/source/k/kernel-configs/config-huge-smp-6.1.12-smp
index 57deb248c..88d97bce1 100644
--- a/source/k/kernel-configs/config-huge-smp-6.1.11-smp
+++ b/source/k/kernel-configs/config-huge-smp-6.1.12-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.11 Kernel Configuration
+# Linux/x86 6.1.12 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
@@ -11,6 +11,7 @@ CONFIG_AS_VERSION=24000
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24000
CONFIG_LLD_VERSION=0
+CONFIG_RUST_IS_AVAILABLE=y
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
diff --git a/source/kde/kde/modules/plasma b/source/kde/kde/modules/plasma
index 1c17583ca..ac873a3fd 100644
--- a/source/kde/kde/modules/plasma
+++ b/source/kde/kde/modules/plasma
@@ -14,10 +14,10 @@ kinfocenter
libksysguard
#ksysguard
layer-shell-qt
+libkscreen
kscreenlocker
kwin
kwrited
-libkscreen
milou
oxygen
oxygen-sounds
diff --git a/source/kde/kde/patch/drkonqi/drkonqi.disable.kuserfeedback.patch b/source/kde/kde/patch/drkonqi/drkonqi.disable.kuserfeedback.patch
index 539f150cb..fa53e86fd 100644
--- a/source/kde/kde/patch/drkonqi/drkonqi.disable.kuserfeedback.patch
+++ b/source/kde/kde/patch/drkonqi/drkonqi.disable.kuserfeedback.patch
@@ -1,6 +1,6 @@
---- ./CMakeLists.txt.orig 2022-10-26 04:55:17.000000000 -0500
-+++ ./CMakeLists.txt 2022-10-26 12:58:31.869100035 -0500
-@@ -58,9 +58,6 @@
+--- ./CMakeLists.txt.orig 2023-02-09 05:58:46.000000000 -0600
++++ ./CMakeLists.txt 2023-02-14 16:05:41.083008231 -0600
+@@ -57,9 +57,6 @@
SyntaxHighlighting
)
@@ -10,18 +10,18 @@
ecm_find_qmlmodule(org.kde.kirigami 2.19)
ecm_find_qmlmodule(org.kde.kitemmodels 1.0)
ecm_find_qmlmodule(org.kde.kcm 1.6)
---- ./src/CMakeLists.txt.orig 2022-10-26 04:55:17.000000000 -0500
-+++ ./src/CMakeLists.txt 2022-10-26 12:58:31.870100035 -0500
+--- ./src/CMakeLists.txt.orig 2023-02-14 16:05:41.083008231 -0600
++++ ./src/CMakeLists.txt 2023-02-14 16:05:55.423007438 -0600
@@ -103,7 +103,6 @@
+ KF5::SyntaxHighlighting # Backtrace Highlighting
drkonqi_backtrace_parser
qbugzilla
- KF5::Declarative
- KUserFeedbackCore
)
if(Systemd_FOUND)
---- ./src/bugzillaintegration/reportinterface.cpp.orig 2022-10-26 04:55:17.000000000 -0500
-+++ ./src/bugzillaintegration/reportinterface.cpp 2022-10-26 13:00:27.065102612 -0500
+--- ./src/bugzillaintegration/reportinterface.cpp.orig 2023-02-09 05:58:46.000000000 -0600
++++ ./src/bugzillaintegration/reportinterface.cpp 2023-02-14 16:05:41.083008231 -0600
@@ -14,7 +14,6 @@
#include <KIO/TransferJob>
diff --git a/source/kde/kde/patch/plasma-workspace/0001-Revert-No-icons-on-the-desktop-by-default.patch b/source/kde/kde/patch/plasma-workspace/0001-Revert-No-icons-on-the-desktop-by-default.patch
index f4215c4f9..554632be6 100644
--- a/source/kde/kde/patch/plasma-workspace/0001-Revert-No-icons-on-the-desktop-by-default.patch
+++ b/source/kde/kde/patch/plasma-workspace/0001-Revert-No-icons-on-the-desktop-by-default.patch
@@ -8,25 +8,14 @@ This reverts commit 240d0d6fe1e5db88e304199339396bd48c23e130.
We want those icons in openSUSE. They've always been there and there is no
reason not to have them.
---
- kioslave/desktop/CMakeLists.txt | 1 +
- kioslave/desktop/Home.desktop | 88 ++++++++++++++++++++++++++++++++++++++++
- kioslave/desktop/kio_desktop.cpp | 4 ++
+ kioworkers/desktop/CMakeLists.txt | 1 +
+ kioworkers/desktop/Home.desktop | 88 ++++++++++++++++++++++++++++++++++++++++
+ kioworkers/desktop/kio_desktop.cpp | 4 ++
3 files changed, 93 insertions(+)
- create mode 100644 kioslave/desktop/Home.desktop
+ create mode 100644 kioworkers/desktop/Home.desktop
-Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/CMakeLists.txt
-===================================================================
---- plasma-workspace-5.17.80git.20210531T011335~40d302afe.orig/kioslave/desktop/CMakeLists.txt 2021-05-31 03:13:35.000000000 +0200
-+++ plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/CMakeLists.txt 2021-05-31 06:59:47.519362944 +0200
-@@ -31,3 +31,4 @@
- ########### install files ###############
-
- install(FILES directory.desktop directory.trash DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop)
-+install(FILES Home.desktop DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop/DesktopLinks)
-Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/Home.desktop
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/Home.desktop 2021-05-31 06:59:47.519362944 +0200
+--- ./kioworkers/desktop/Home.desktop.orig 2023-02-14 12:08:58.205793836 -0600
++++ ./kioworkers/desktop/Home.desktop 2023-02-14 12:08:58.205793836 -0600
@@ -0,0 +1,88 @@
+[Desktop Entry]
+Encoding=UTF-8
@@ -116,11 +105,16 @@ Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/Ho
+Icon=user-home
+Type=Link
+
-Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/kio_desktop.cpp
-===================================================================
---- plasma-workspace-5.17.80git.20210531T011335~40d302afe.orig/kioslave/desktop/kio_desktop.cpp 2021-05-31 03:13:35.000000000 +0200
-+++ plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/kio_desktop.cpp 2021-05-31 06:59:47.519362944 +0200
-@@ -90,6 +90,10 @@
+--- ./kioworkers/desktop/CMakeLists.txt.orig 2023-02-13 10:02:12.000000000 -0600
++++ ./kioworkers/desktop/CMakeLists.txt 2023-02-14 12:08:58.205793836 -0600
+@@ -24,3 +24,4 @@
+ ########### install files ###############
+
+ install(FILES directory.desktop directory.trash DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop)
++install(FILES Home.desktop DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop/DesktopLinks)
+--- ./kioworkers/desktop/kio_desktop.cpp.orig 2023-02-13 10:02:12.000000000 -0600
++++ ./kioworkers/desktop/kio_desktop.cpp 2023-02-14 12:08:58.205793836 -0600
+@@ -76,6 +76,10 @@
// Copy the .directory file
QFile::copy(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kio_desktop/directory.desktop")), desktopPath + "/.directory");
diff --git a/source/l/mozjs102/mozjs102.SlackBuild b/source/l/mozjs102/mozjs102.SlackBuild
index e5db5f3d4..24fcbe063 100755
--- a/source/l/mozjs102/mozjs102.SlackBuild
+++ b/source/l/mozjs102/mozjs102.SlackBuild
@@ -99,7 +99,6 @@ zcat $CWD/patches/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch.g
zcat $CWD/patches/icu_sources_data-Write-command-output-to-our-stderr.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/emitter.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/init_patch.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/patches/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/0001-Skip-failing-tests-on-ppc64-and-s390x.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/remove-sloppy-m4-detection-from-bundled-autoconf.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/spidermonkey_checks_disable.patch.gz | patch -p1 --verbose || exit 1
diff --git a/source/l/mozjs102/patches/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch b/source/l/mozjs102/patches/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch
deleted file mode 100644
index a20d39afb..000000000
--- a/source/l/mozjs102/patches/0001-Python-Build-Use-r-instead-of-rU-file-read-modes.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 0e790bd2eb846e90495eb81952cf35cc7fc8766a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
-Date: Mon, 27 Jun 2022 19:55:16 +0100
-Subject: [PATCH] Python/Build: Use r instead of rU file read modes
-
-Fixes Python 3.11 build
----
- python/mozbuild/mozbuild/action/process_define_files.py | 2 +-
- python/mozbuild/mozbuild/backend/base.py | 2 +-
- python/mozbuild/mozbuild/preprocessor.py | 6 +++---
- python/mozbuild/mozbuild/util.py | 4 ++--
- python/mozbuild/mozpack/files.py | 4 ++--
- 5 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
-index f1d401a..aca59d0 100644
---- a/python/mozbuild/mozbuild/action/process_define_files.py
-+++ b/python/mozbuild/mozbuild/action/process_define_files.py
-@@ -36,7 +36,7 @@ def process_define_file(output, input):
- ) and not config.substs.get("JS_STANDALONE"):
- config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
-
-- with open(path, "rU") as input:
-+ with open(path, "r") as input:
- r = re.compile(
- "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
- )
-diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
-index 7bc1986..b64a709 100644
---- a/python/mozbuild/mozbuild/backend/base.py
-+++ b/python/mozbuild/mozbuild/backend/base.py
-@@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin):
- return status
-
- @contextmanager
-- def _write_file(self, path=None, fh=None, readmode="rU"):
-+ def _write_file(self, path=None, fh=None, readmode="r"):
- """Context manager to write a file.
-
- This is a glorified wrapper around FileAvoidWrite with integration to
-diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
-index f7820b9..857f1a6 100644
---- a/python/mozbuild/mozbuild/preprocessor.py
-+++ b/python/mozbuild/mozbuild/preprocessor.py
-@@ -531,7 +531,7 @@ class Preprocessor:
-
- if args:
- for f in args:
-- with io.open(f, "rU", encoding="utf-8") as input:
-+ with io.open(f, "r", encoding="utf-8") as input:
- self.processFile(input=input, output=out)
- if depfile:
- mk = Makefile()
-@@ -860,7 +860,7 @@ class Preprocessor:
- args = self.applyFilters(args)
- if not os.path.isabs(args):
- args = os.path.join(self.curdir, args)
-- args = io.open(args, "rU", encoding="utf-8")
-+ args = io.open(args, "r", encoding="utf-8")
- except Preprocessor.Error:
- raise
- except Exception:
-@@ -914,7 +914,7 @@ class Preprocessor:
- def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
- pp = Preprocessor(defines=defines, marker=marker)
- for f in includes:
-- with io.open(f, "rU", encoding="utf-8") as input:
-+ with io.open(f, "r", encoding="utf-8") as input:
- pp.processFile(input=input, output=output)
- return pp.includes
-
-diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
-index 071daec..b59aabb 100644
---- a/python/mozbuild/mozbuild/util.py
-+++ b/python/mozbuild/mozbuild/util.py
-@@ -236,7 +236,7 @@ class FileAvoidWrite(BytesIO):
- still occur, as well as diff capture if requested.
- """
-
-- def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
-+ def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
- BytesIO.__init__(self)
- self.name = filename
- assert type(capture_diff) == bool
-diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
-index 8150e72..001c497 100644
---- a/python/mozbuild/mozpack/files.py
-+++ b/python/mozbuild/mozpack/files.py
-@@ -554,7 +554,7 @@ class PreprocessedFile(BaseFile):
- pp = Preprocessor(defines=self.defines, marker=self.marker)
- pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
-
-- with _open(self.path, "rU") as input:
-+ with _open(self.path, "r") as input:
- with _open(os.devnull, "w") as output:
- pp.processFile(input=input, output=output)
-
-@@ -611,7 +611,7 @@ class PreprocessedFile(BaseFile):
- pp = Preprocessor(defines=self.defines, marker=self.marker)
- pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
-
-- with _open(self.path, "rU") as input:
-+ with _open(self.path, "r") as input:
- pp.processFile(input=input, output=dest, depfile=deps_out)
-
- dest.close()
---
-2.36.1
-
diff --git a/source/n/php/CVE-2023-0567.patch b/source/n/php/CVE-2023-0567.patch
new file mode 100644
index 000000000..78defd92b
--- /dev/null
+++ b/source/n/php/CVE-2023-0567.patch
@@ -0,0 +1,142 @@
+From 7882d12ff2d8d8c5a4af821464e0a5ac2cde2002 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= <tim@bastelstu.be>
+Date: Mon, 23 Jan 2023 21:15:24 +0100
+Subject: [PATCH] crypt: Fix validation of malformed BCrypt hashes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+PHP’s implementation of crypt_blowfish differs from the upstream Openwall
+version by adding a “PHP Hack”, which allows one to cut short the BCrypt salt
+by including a `$` character within the characters that represent the salt.
+
+Hashes that are affected by the “PHP Hack” may erroneously validate any
+password as valid when used with `password_verify` and when comparing the
+return value of `crypt()` against the input.
+
+The PHP Hack exists since the first version of PHP’s own crypt_blowfish
+implementation that was added in 1e820eca02dcf322b41fd2fe4ed2a6b8309f8ab5.
+
+No clear reason is given for the PHP Hack’s existence. This commit removes it,
+because BCrypt hashes containing a `$` character in their salt are not valid
+BCrypt hashes.
+---
+ ext/standard/crypt_blowfish.c | 8 --
+ .../tests/crypt/bcrypt_salt_dollar.phpt | 82 +++++++++++++++++++
+ 2 files changed, 82 insertions(+), 8 deletions(-)
+ create mode 100644 ext/standard/tests/crypt/bcrypt_salt_dollar.phpt
+
+diff --git a/ext/standard/crypt_blowfish.c b/ext/standard/crypt_blowfish.c
+index 3806a290aee4..351d40308089 100644
+--- a/ext/standard/crypt_blowfish.c
++++ b/ext/standard/crypt_blowfish.c
+@@ -371,7 +371,6 @@ static const unsigned char BF_atoi64[0x60] = {
+ #define BF_safe_atoi64(dst, src) \
+ { \
+ tmp = (unsigned char)(src); \
+- if (tmp == '$') break; /* PHP hack */ \
+ if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \
+ tmp = BF_atoi64[tmp]; \
+ if (tmp > 63) return -1; \
+@@ -399,13 +398,6 @@ static int BF_decode(BF_word *dst, const char *src, int size)
+ *dptr++ = ((c3 & 0x03) << 6) | c4;
+ } while (dptr < end);
+
+- if (end - dptr == size) {
+- return -1;
+- }
+-
+- while (dptr < end) /* PHP hack */
+- *dptr++ = 0;
+-
+ return 0;
+ }
+
+diff --git a/ext/standard/tests/crypt/bcrypt_salt_dollar.phpt b/ext/standard/tests/crypt/bcrypt_salt_dollar.phpt
+new file mode 100644
+index 000000000000..32e335f4b087
+--- /dev/null
++++ b/ext/standard/tests/crypt/bcrypt_salt_dollar.phpt
+@@ -0,0 +1,82 @@
++--TEST--
++bcrypt correctly rejects salts containing $
++--FILE--
++<?php
++for ($i = 0; $i < 23; $i++) {
++ $salt = '$2y$04$' . str_repeat('0', $i) . '$';
++ $result = crypt("foo", $salt);
++ var_dump($salt);
++ var_dump($result);
++ var_dump($result === $salt);
++}
++?>
++--EXPECT--
++string(8) "$2y$04$$"
++string(2) "*0"
++bool(false)
++string(9) "$2y$04$0$"
++string(2) "*0"
++bool(false)
++string(10) "$2y$04$00$"
++string(2) "*0"
++bool(false)
++string(11) "$2y$04$000$"
++string(2) "*0"
++bool(false)
++string(12) "$2y$04$0000$"
++string(2) "*0"
++bool(false)
++string(13) "$2y$04$00000$"
++string(2) "*0"
++bool(false)
++string(14) "$2y$04$000000$"
++string(2) "*0"
++bool(false)
++string(15) "$2y$04$0000000$"
++string(2) "*0"
++bool(false)
++string(16) "$2y$04$00000000$"
++string(2) "*0"
++bool(false)
++string(17) "$2y$04$000000000$"
++string(2) "*0"
++bool(false)
++string(18) "$2y$04$0000000000$"
++string(2) "*0"
++bool(false)
++string(19) "$2y$04$00000000000$"
++string(2) "*0"
++bool(false)
++string(20) "$2y$04$000000000000$"
++string(2) "*0"
++bool(false)
++string(21) "$2y$04$0000000000000$"
++string(2) "*0"
++bool(false)
++string(22) "$2y$04$00000000000000$"
++string(2) "*0"
++bool(false)
++string(23) "$2y$04$000000000000000$"
++string(2) "*0"
++bool(false)
++string(24) "$2y$04$0000000000000000$"
++string(2) "*0"
++bool(false)
++string(25) "$2y$04$00000000000000000$"
++string(2) "*0"
++bool(false)
++string(26) "$2y$04$000000000000000000$"
++string(2) "*0"
++bool(false)
++string(27) "$2y$04$0000000000000000000$"
++string(2) "*0"
++bool(false)
++string(28) "$2y$04$00000000000000000000$"
++string(2) "*0"
++bool(false)
++string(29) "$2y$04$000000000000000000000$"
++string(2) "*0"
++bool(false)
++string(30) "$2y$04$0000000000000000000000$"
++string(60) "$2y$04$000000000000000000000u2a2UpVexIt9k3FMJeAVr3c04F5tcI8K"
++bool(false)
diff --git a/source/n/php/CVE-2023-0568.patch b/source/n/php/CVE-2023-0568.patch
new file mode 100644
index 000000000..3b8440926
--- /dev/null
+++ b/source/n/php/CVE-2023-0568.patch
@@ -0,0 +1,62 @@
+From c0fceebfa195b8e56a7108cb731b5ea7afbef70c Mon Sep 17 00:00:00 2001
+From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
+Date: Fri, 27 Jan 2023 19:28:27 +0100
+Subject: [PATCH] Fix array overrun when appending slash to paths
+
+Fix it by extending the array sizes by one character. As the input is
+limited to the maximum path length, there will always be place to append
+the slash. As the php_check_specific_open_basedir() simply uses the
+strings to compare against each other, no new failures related to too
+long paths are introduced.
+We'll let the DOM and XML case handle a potentially too long path in the
+library code.
+---
+ ext/dom/document.c | 2 +-
+ ext/xmlreader/php_xmlreader.c | 2 +-
+ main/fopen_wrappers.c | 6 +++---
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/ext/dom/document.c b/ext/dom/document.c
+index 4dee5548f188..c60198a3be11 100644
+--- a/ext/dom/document.c
++++ b/ext/dom/document.c
+@@ -1182,7 +1182,7 @@ static xmlDocPtr dom_document_parser(zval *id, int mode, char *source, size_t so
+ int validate, recover, resolve_externals, keep_blanks, substitute_ent;
+ int resolved_path_len;
+ int old_error_reporting = 0;
+- char *directory=NULL, resolved_path[MAXPATHLEN];
++ char *directory=NULL, resolved_path[MAXPATHLEN + 1];
+
+ if (id != NULL) {
+ intern = Z_DOMOBJ_P(id);
+diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
+index c17884d960cb..39141c8c1223 100644
+--- a/ext/xmlreader/php_xmlreader.c
++++ b/ext/xmlreader/php_xmlreader.c
+@@ -1017,7 +1017,7 @@ PHP_METHOD(XMLReader, XML)
+ xmlreader_object *intern = NULL;
+ char *source, *uri = NULL, *encoding = NULL;
+ int resolved_path_len, ret = 0;
+- char *directory=NULL, resolved_path[MAXPATHLEN];
++ char *directory=NULL, resolved_path[MAXPATHLEN + 1];
+ xmlParserInputBufferPtr inputbfr;
+ xmlTextReaderPtr reader;
+
+diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c
+index f6ce26e104be..12cc9c8b10c0 100644
+--- a/main/fopen_wrappers.c
++++ b/main/fopen_wrappers.c
+@@ -129,10 +129,10 @@ PHPAPI ZEND_INI_MH(OnUpdateBaseDir)
+ */
+ PHPAPI int php_check_specific_open_basedir(const char *basedir, const char *path)
+ {
+- char resolved_name[MAXPATHLEN];
+- char resolved_basedir[MAXPATHLEN];
++ char resolved_name[MAXPATHLEN + 1];
++ char resolved_basedir[MAXPATHLEN + 1];
+ char local_open_basedir[MAXPATHLEN];
+- char path_tmp[MAXPATHLEN];
++ char path_tmp[MAXPATHLEN + 1];
+ char *path_file;
+ size_t resolved_basedir_len;
+ size_t resolved_name_len;
diff --git a/source/n/php/CVE-2023-0662.patch b/source/n/php/CVE-2023-0662.patch
new file mode 100644
index 000000000..e9cada2c9
--- /dev/null
+++ b/source/n/php/CVE-2023-0662.patch
@@ -0,0 +1,411 @@
+From 716de0cff539f46294ef70fe75d548cd66766370 Mon Sep 17 00:00:00 2001
+From: Jakub Zelenka <bukka@php.net>
+Date: Thu, 19 Jan 2023 14:31:25 +0000
+Subject: [PATCH] Introduce max_multipart_body_parts INI
+
+This fixes GHSA-54hq-v5wp-fqgv DOS vulnerabality by limitting number of
+parsed multipart body parts as currently all parts were always parsed.
+---
+ main/main.c | 1 +
+ main/rfc1867.c | 11 ++
+ ...-54hq-v5wp-fqgv-max-body-parts-custom.phpt | 53 +++++++++
+ ...54hq-v5wp-fqgv-max-body-parts-default.phpt | 54 +++++++++
+ .../ghsa-54hq-v5wp-fqgv-max-file-uploads.phpt | 52 +++++++++
+ sapi/fpm/tests/tester.inc | 106 +++++++++++++++---
+ 6 files changed, 262 insertions(+), 15 deletions(-)
+ create mode 100644 sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-custom.phpt
+ create mode 100644 sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-default.phpt
+ create mode 100644 sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-file-uploads.phpt
+
+diff --git a/main/main.c b/main/main.c
+index 40684f32dc14..c58ea58bf5ac 100644
+--- a/main/main.c
++++ b/main/main.c
+@@ -751,6 +751,7 @@ PHP_INI_BEGIN()
+ PHP_INI_ENTRY("disable_functions", "", PHP_INI_SYSTEM, NULL)
+ PHP_INI_ENTRY("disable_classes", "", PHP_INI_SYSTEM, NULL)
+ PHP_INI_ENTRY("max_file_uploads", "20", PHP_INI_SYSTEM|PHP_INI_PERDIR, NULL)
++ PHP_INI_ENTRY("max_multipart_body_parts", "-1", PHP_INI_SYSTEM|PHP_INI_PERDIR, NULL)
+
+ STD_PHP_INI_BOOLEAN("allow_url_fopen", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_url_fopen, php_core_globals, core_globals)
+ STD_PHP_INI_BOOLEAN("allow_url_include", "0", PHP_INI_SYSTEM, OnUpdateBool, allow_url_include, php_core_globals, core_globals)
+diff --git a/main/rfc1867.c b/main/rfc1867.c
+index b43cfae5a1e2..3086e8da3dbe 100644
+--- a/main/rfc1867.c
++++ b/main/rfc1867.c
+@@ -687,6 +687,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */
+ void *event_extra_data = NULL;
+ unsigned int llen = 0;
+ int upload_cnt = INI_INT("max_file_uploads");
++ int body_parts_cnt = INI_INT("max_multipart_body_parts");
+ const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
+ php_rfc1867_getword_t getword;
+ php_rfc1867_getword_conf_t getword_conf;
+@@ -708,6 +709,11 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */
+ return;
+ }
+
++ if (body_parts_cnt < 0) {
++ body_parts_cnt = PG(max_input_vars) + upload_cnt;
++ }
++ int body_parts_limit = body_parts_cnt;
++
+ /* Get the boundary */
+ boundary = strstr(content_type_dup, "boundary");
+ if (!boundary) {
+@@ -792,6 +798,11 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */
+ char *pair = NULL;
+ int end = 0;
+
++ if (--body_parts_cnt < 0) {
++ php_error_docref(NULL, E_WARNING, "Multipart body parts limit exceeded %d. To increase the limit change max_multipart_body_parts in php.ini.", body_parts_limit);
++ goto fileupload_done;
++ }
++
+ while (isspace(*cd)) {
+ ++cd;
+ }
+#diff --git a/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-custom.phpt b/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-custom.phpt
+#new file mode 100644
+#index 000000000000..d2239ac3c410
+#--- /dev/null
+#+++ b/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-custom.phpt
+#@@ -0,0 +1,53 @@
+#+--TEST--
+#+FPM: GHSA-54hq-v5wp-fqgv - max_multipart_body_parts ini custom value
+#+--SKIPIF--
+#+<?php include "skipif.inc"; ?>
+#+--FILE--
+#+<?php
+#+
+#+require_once "tester.inc";
+#+
+#+$cfg = <<<EOT
+#+[global]
+#+error_log = {{FILE:LOG}}
+#+[unconfined]
+#+listen = {{ADDR}}
+#+pm = dynamic
+#+pm.max_children = 5
+#+pm.start_servers = 1
+#+pm.min_spare_servers = 1
+#+pm.max_spare_servers = 3
+#+php_admin_value[html_errors] = false
+#+php_admin_value[max_input_vars] = 20
+#+php_admin_value[max_file_uploads] = 5
+#+php_admin_value[max_multipart_body_parts] = 10
+#+php_flag[display_errors] = On
+#+EOT;
+#+
+#+$code = <<<EOT
+#+<?php
+#+var_dump(count(\$_POST));
+#+EOT;
+#+
+#+$tester = new FPM\Tester($cfg, $code);
+#+$tester->start();
+#+$tester->expectLogStartNotices();
+#+echo $tester
+#+ ->request(stdin: [
+#+ 'parts' => [
+#+ 'count' => 30,
+#+ ]
+#+ ])
+#+ ->getBody();
+#+$tester->terminate();
+#+$tester->close();
+#+
+#+?>
+#+--EXPECT--
+#+Warning: Unknown: Multipart body parts limit exceeded 10. To increase the limit change max_multipart_body_parts in php.ini. in Unknown on line 0
+#+int(10)
+#+--CLEAN--
+#+<?php
+#+require_once "tester.inc";
+#+FPM\Tester::clean();
+#+?>
+#diff --git a/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-default.phpt b/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-default.phpt
+#new file mode 100644
+#index 000000000000..42b5afbf9ee7
+#--- /dev/null
+#+++ b/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-body-parts-default.phpt
+#@@ -0,0 +1,54 @@
+#+--TEST--
+#+FPM: GHSA-54hq-v5wp-fqgv - max_multipart_body_parts ini default
+#+--SKIPIF--
+#+<?php include "skipif.inc"; ?>
+#+--FILE--
+#+<?php
+#+
+#+require_once "tester.inc";
+#+
+#+$cfg = <<<EOT
+#+[global]
+#+error_log = {{FILE:LOG}}
+#+[unconfined]
+#+listen = {{ADDR}}
+#+pm = dynamic
+#+pm.max_children = 5
+#+pm.start_servers = 1
+#+pm.min_spare_servers = 1
+#+pm.max_spare_servers = 3
+#+php_admin_value[html_errors] = false
+#+php_admin_value[max_input_vars] = 20
+#+php_admin_value[max_file_uploads] = 5
+#+php_flag[display_errors] = On
+#+EOT;
+#+
+#+$code = <<<EOT
+#+<?php
+#+var_dump(count(\$_POST));
+#+EOT;
+#+
+#+$tester = new FPM\Tester($cfg, $code);
+#+$tester->start();
+#+$tester->expectLogStartNotices();
+#+echo $tester
+#+ ->request(stdin: [
+#+ 'parts' => [
+#+ 'count' => 30,
+#+ ]
+#+ ])
+#+ ->getBody();
+#+$tester->terminate();
+#+$tester->close();
+#+
+#+?>
+#+--EXPECT--
+#+Warning: Unknown: Input variables exceeded 20. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
+#+
+#+Warning: Unknown: Multipart body parts limit exceeded 25. To increase the limit change max_multipart_body_parts in php.ini. in Unknown on line 0
+#+int(20)
+#+--CLEAN--
+#+<?php
+#+require_once "tester.inc";
+#+FPM\Tester::clean();
+#+?>
+#diff --git a/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-file-uploads.phpt b/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-file-uploads.phpt
+#new file mode 100644
+#index 000000000000..da81174c7280
+#--- /dev/null
+#+++ b/sapi/fpm/tests/ghsa-54hq-v5wp-fqgv-max-file-uploads.phpt
+#@@ -0,0 +1,52 @@
+#+--TEST--
+#+FPM: GHSA-54hq-v5wp-fqgv - exceeding max_file_uploads
+#+--SKIPIF--
+#+<?php include "skipif.inc"; ?>
+#+--FILE--
+#+<?php
+#+
+#+require_once "tester.inc";
+#+
+#+$cfg = <<<EOT
+#+[global]
+#+error_log = {{FILE:LOG}}
+#+[unconfined]
+#+listen = {{ADDR}}
+#+pm = dynamic
+#+pm.max_children = 5
+#+pm.start_servers = 1
+#+pm.min_spare_servers = 1
+#+pm.max_spare_servers = 3
+#+php_admin_value[html_errors] = false
+#+php_admin_value[max_file_uploads] = 5
+#+php_flag[display_errors] = On
+#+EOT;
+#+
+#+$code = <<<EOT
+#+<?php
+#+var_dump(count(\$_FILES));
+#+EOT;
+#+
+#+$tester = new FPM\Tester($cfg, $code);
+#+$tester->start();
+#+$tester->expectLogStartNotices();
+#+echo $tester
+#+ ->request(stdin: [
+#+ 'parts' => [
+#+ 'count' => 10,
+#+ 'param' => 'filename'
+#+ ]
+#+ ])
+#+ ->getBody();
+#+$tester->terminate();
+#+$tester->close();
+#+
+#+?>
+#+--EXPECT--
+#+Warning: Maximum number of allowable file uploads has been exceeded in Unknown on line 0
+#+int(5)
+#+--CLEAN--
+#+<?php
+#+require_once "tester.inc";
+#+FPM\Tester::clean();
+#+?>
+##diff --git a/sapi/fpm/tests/tester.inc b/sapi/fpm/tests/tester.inc
+##index 6197cdba53f5..e51aa0f69143 100644
+##--- a/sapi/fpm/tests/tester.inc
+##+++ b/sapi/fpm/tests/tester.inc
+#@@ -567,13 +567,17 @@ class Tester
+# * @param string $query
+# * @param array $headers
+# * @param string|null $uri
+#+ * @param string|null $scriptFilename
+#+ * @param string|null $stdin
+# *
+# * @return array
+# */
+# private function getRequestParams(
+# string $query = '',
+# array $headers = [],
+#- string $uri = null
+#+ string $uri = null,
+#+ string $scriptFilename = null,
+#+ ?string $stdin = null
+# ): array {
+# if (is_null($uri)) {
+# $uri = $this->makeSourceFile();
+3@@ -582,8 +586,8 @@ class Tester
+# $params = array_merge(
+# [
+# 'GATEWAY_INTERFACE' => 'FastCGI/1.0',
+#- 'REQUEST_METHOD' => 'GET',
+#- 'SCRIPT_FILENAME' => $uri,
+#+ 'REQUEST_METHOD' => is_null($stdin) ? 'GET' : 'POST',
+#+ 'SCRIPT_FILENAME' => $scriptFilename ?: $uri,
+# 'SCRIPT_NAME' => $uri,
+# 'QUERY_STRING' => $query,
+# 'REQUEST_URI' => $uri . ($query ? '?' . $query : ""),
+#@@ -597,7 +601,7 @@ class Tester
+# 'SERVER_PROTOCOL' => 'HTTP/1.1',
+# 'DOCUMENT_ROOT' => __DIR__,
+# 'CONTENT_TYPE' => '',
+#- 'CONTENT_LENGTH' => 0
+#+ 'CONTENT_LENGTH' => strlen($stdin ?? "") // Default to 0
+# ],
+# $headers
+# );
+#@@ -607,20 +611,86 @@ class Tester
+# });
+# }
+#
+#+ /**
+#+ * Parse stdin and generate data for multipart config.
+#+ *
+#+ * @param array $stdin
+#+ * @param array $headers
+#+ *
+#+ * @return void
+#+ * @throws \Exception
+#+ */
+#+ private function parseStdin(array $stdin, array &$headers)
+#+ {
+#+ $parts = $stdin['parts'] ?? null;
+#+ if (empty($parts)) {
+#+ throw new \Exception('The stdin array needs to contain parts');
+#+ }
+#+ $boundary = $stdin['boundary'] ?? 'AaB03x';
+#+ if ( ! isset($headers['CONTENT_TYPE'])) {
+#+ $headers['CONTENT_TYPE'] = 'multipart/form-data; boundary=' . $boundary;
+#+ }
+#+ $count = $parts['count'] ?? null;
+#+ if ( ! is_null($count)) {
+#+ $dispositionType = $parts['disposition'] ?? 'form-data';
+#+ $dispositionParam = $parts['param'] ?? 'name';
+#+ $namePrefix = $parts['prefix'] ?? 'f';
+#+ $nameSuffix = $parts['suffix'] ?? '';
+#+ $value = $parts['value'] ?? 'test';
+#+ $parts = [];
+#+ for ($i = 0; $i < $count; $i++) {
+#+ $parts[] = [
+#+ 'disposition' => $dispositionType,
+#+ 'param' => $dispositionParam,
+#+ 'name' => "$namePrefix$i$nameSuffix",
+#+ 'value' => $value
+#+ ];
+#+ }
+#+ }
+#+ $out = '';
+#+ $nl = "\r\n";
+#+ foreach ($parts as $part) {
+#+ if (!is_array($part)) {
+#+ $part = ['name' => $part];
+#+ } elseif ( ! isset($part['name'])) {
+#+ throw new \Exception('Each part has to have a name');
+#+ }
+#+ $name = $part['name'];
+#+ $dispositionType = $part['disposition'] ?? 'form-data';
+#+ $dispositionParam = $part['param'] ?? 'name';
+#+ $value = $part['value'] ?? 'test';
+#+ $partHeaders = $part['headers'] ?? [];
+#+
+#+ $out .= "--$boundary$nl";
+#+ $out .= "Content-disposition: $dispositionType; $dispositionParam=\"$name\"$nl";
+#+ foreach ($partHeaders as $headerName => $headerValue) {
+#+ $out .= "$headerName: $headerValue$nl";
+#+ }
+#+ $out .= $nl;
+#+ $out .= "$value$nl";
+#+ }
+#+ $out .= "--$boundary--$nl";
+#+
+#+ return $out;
+#+ }
+#+
+# /**
+# * Execute request.
+# *
+#- * @param string $query
+#- * @param array $headers
+#- * @param string|null $uri
+#- * @param string|null $address
+#- * @param string|null $successMessage
+#- * @param string|null $errorMessage
+#- * @param bool $connKeepAlive
+#- * @param bool $expectError
+#- * @param int $readLimit
+#+ * @param string $query
+#+ * @param array $headers
+#+ * @param string|null $uri
+#+ * @param string|null $address
+#+ * @param string|null $successMessage
+#+ * @param string|null $errorMessage
+#+ * @param bool $connKeepAlive
+#+ * @param string|null $scriptFilename = null
+#+ * @param string|array|null $stdin = null
+#+ * @param bool $expectError
+#+ * @param int $readLimit
+# *
+# * @return Response
+#+ * @throws \Exception
+# */
+# public function request(
+# string $query = '',
+#@@ -630,6 +700,8 @@ class Tester
+# string $successMessage = null,
+# string $errorMessage = null,
+# bool $connKeepAlive = false,
+#+ string $scriptFilename = null,
+#+ string|array $stdin = null,
+# bool $expectError = false,
+# int $readLimit = -1,
+# ): Response {
+#@@ -637,12 +709,16 @@ class Tester
+# return new Response(null, true);
+# }
+#
+#- $params = $this->getRequestParams($query, $headers, $uri);
+#+ if (is_array($stdin)) {
+#+ $stdin = $this->parseStdin($stdin, $headers);
+#+ }
+#+
+#+ $params = $this->getRequestParams($query, $headers, $uri, $scriptFilename, $stdin);
+# $this->trace('Request params', $params);
+#
+# try {
+# $this->response = new Response(
+#- $this->getClient($address, $connKeepAlive)->request_data($params, false, $readLimit)
+#+ $this->getClient($address, $connKeepAlive)->request_data($params, $stdin, $readLimit)
+# );
+# if ($expectError) {
+# $this->error('Expected request error but the request was successful');
diff --git a/source/n/php/php.SlackBuild b/source/n/php/php.SlackBuild
index 7109f9586..c54694b16 100755
--- a/source/n/php/php.SlackBuild
+++ b/source/n/php/php.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=php
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ALPINE=2.26
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -128,6 +128,9 @@ tar xvf $CWD/php-$VERSION.tar.xz || exit 1
cd php-$VERSION || exit 1
zcat $CWD/CVE-2022-31631.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/CVE-2023-0567.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/CVE-2023-0568.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/CVE-2023-0662.patch.gz | patch -p1 --verbose || exit 1
# cleanup:
find . -name "*.orig" -delete
diff --git a/source/x/FTBFSlog b/source/x/FTBFSlog
index 2ec46b74e..fef9f0bd9 100644
--- a/source/x/FTBFSlog
+++ b/source/x/FTBFSlog
@@ -1,3 +1,7 @@
+Tue Feb 14 20:48:58 UTC 2023
+vulkan-sdk: Patched VulkanTools to fix warning/error about uninitialized
+variables. Thanks to lucabon.
++--------------------------+
Sat Oct 15 19:21:06 UTC 2022
x11/xdm: Fixed the arc4random patch. Thanks to nobodino.
+--------------------------+
diff --git a/source/x/vulkan-sdk/VulkanTools-sdk.gcc12.diff b/source/x/vulkan-sdk/VulkanTools-sdk.gcc12.diff
new file mode 100644
index 000000000..d28785737
--- /dev/null
+++ b/source/x/vulkan-sdk/VulkanTools-sdk.gcc12.diff
@@ -0,0 +1,38 @@
+--- ./submodules/jsoncpp/src/lib_json/json_reader.cpp.orig 2022-03-06 13:14:43.000000000 -0600
++++ ./submodules/jsoncpp/src/lib_json/json_reader.cpp 2023-02-14 14:46:31.107270967 -0600
+@@ -212,7 +212,7 @@
+ break;
+ case tokenNull:
+ {
+- Value v;
++ Value v(0);
+ currentValue().swapPayload(v);
+ currentValue().setOffsetStart(token.start_ - begin_);
+ currentValue().setOffsetLimit(token.end_ - begin_);
+@@ -225,7 +225,7 @@
+ // "Un-read" the current token and mark the current value as a null
+ // token.
+ current_--;
+- Value v;
++ Value v(0);
+ currentValue().swapPayload(v);
+ currentValue().setOffsetStart(current_ - begin_ - 1);
+ currentValue().setOffsetLimit(current_ - begin_);
+@@ -1134,7 +1134,7 @@
+ break;
+ case tokenNull:
+ {
+- Value v;
++ Value v(0);
+ currentValue().swapPayload(v);
+ currentValue().setOffsetStart(token.start_ - begin_);
+ currentValue().setOffsetLimit(token.end_ - begin_);
+@@ -1171,7 +1171,7 @@
+ // "Un-read" the current token and mark the current value as a null
+ // token.
+ current_--;
+- Value v;
++ Value v(0);
+ currentValue().swapPayload(v);
+ currentValue().setOffsetStart(current_ - begin_ - 1);
+ currentValue().setOffsetLimit(current_ - begin_);
diff --git a/source/x/vulkan-sdk/vulkan-sdk.SlackBuild b/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
index bf88a291e..9e027cd67 100755
--- a/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
+++ b/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for vulkan-sdk
-# Copyright 2016, 2017, 2018, 2020, 2021, 2022 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2016, 2017, 2018, 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -355,6 +355,9 @@ cd $TMP
tar xvf $CWD/VulkanTools-sdk-$VULKANTOOLS_VERSION.tar.?z || exit 1
cd $TMP/VulkanTools-sdk-$VULKANTOOLS_VERSION
+# Fix warning/error on gcc12 about uninitialized variables:
+zcat $CWD/VulkanTools-sdk.gcc12.diff.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \