From 630e367ca8f68cd91c2e9082ba758ffd403f056c Mon Sep 17 00:00:00 2001 From: oneflux Date: Tue, 22 Apr 2025 20:04:47 -0700 Subject: [PATCH] add libhardened_malloc --- patches/config.patch | 2 ++ scripts/copy-additions.sh | 1 + settings/libhardened_malloc.so | Bin 0 -> 39600 bytes 3 files changed, 3 insertions(+) create mode 100644 settings/libhardened_malloc.so diff --git a/patches/config.patch b/patches/config.patch index 16c3233..13ab78a 100644 --- a/patches/config.patch +++ b/patches/config.patch @@ -10,6 +10,7 @@ index bb0f71dd60..3ad3d84b82 100644 +@RESPATH@/defaults/pref/local-settings.js +@RESPATH@/distribution/policies.json +@RESPATH@/omegafox.cfg ++@RESPATH@/libhardened_malloc.so + ; [Default Preferences] ; All the pref files must be part of base to prevent migration bugs @@ -22,6 +23,7 @@ index e69de29bb2..208184547e 100644 +FINAL_TARGET_FILES += [ + "omegafox.cfg", + "properties.json" ++ "libhardened_malloc.so" +] + +FINAL_TARGET_FILES.distribution += [ diff --git a/scripts/copy-additions.sh b/scripts/copy-additions.sh index 0478786..b8cd463 100644 --- a/scripts/copy-additions.sh +++ b/scripts/copy-additions.sh @@ -33,6 +33,7 @@ run 'cp -v ../../settings/omegafox.cfg .' run 'cp -v ../../settings/distribution/policies.json .' run 'cp -v ../../settings/defaults/pref/local-settings.js .' run 'cp -v ../../settings/properties.json .' +run 'cp -v ../../settings/libhardened_malloc.so .' run 'touch moz.build' popd > /dev/null diff --git a/settings/libhardened_malloc.so b/settings/libhardened_malloc.so new file mode 100644 index 0000000000000000000000000000000000000000..2bef856723e06ee467fa04bc3019164146154b43 GIT binary patch literal 39600 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