diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2021-03-31 22:34:31 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2021-04-06 16:22:18 +0300 |
commit | 95ac1b8d7409c14ee15ddcb7e5dd3d28b24caa7f (patch) | |
tree | e686d31ba8c6e704d27aa7699f4a1a5673283b98 /poky/meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch | |
parent | 32b11995a9447d927862951d29db38455f9e0205 (diff) | |
download | openbmc-95ac1b8d7409c14ee15ddcb7e5dd3d28b24caa7f.tar.xz |
poky: subtree update:c8075ed8f1..7d0988966c
Adrian (1):
weston-init: Set $HOME variable for SysVinit manager
Alejandro Hernandez Samaniego (6):
bitbake: bitbake: Add Azure Storage fetcher implementation
bitbake: docs: Add Az fetcher documentation
bitbake: docs: Add AZ_SAS definition to glossary
ref-manual: Add Az fetcher documentation
sanity.bbclass: Add az fetcher to accepted URI protocols for mirrors sanity
devtool: Fix do_kernel_configme task
Alexander Kanavin (23):
core-image.bbclass: add a weston IMAGE_FEATURE, similar to x11-base
rootfs-postcommands: correctly set systemd target for weston images
oeqa/weston: correctly run wayland-info when systemd is in use
dnf: upgrade 4.5.2 -> 4.6.0
libdnf: update 0.55.2 -> 0.58.0
libdnf: replace a musl fix with a better one
librepo: update 1.12.1 -> 1.13.0
libical: update 3.0.8 -> 3.0.9
libical: drop the ad hoc native generator build
bmap-tools: upgrade 3.5 -> 3.6
procps: update 3.3.16 -> 3.3.17
libxcrypt: fix sporadic failures in nativesdk-libxcrypt-compat
bind: upgrade 9.16.11 -> 9.16.12
spirv-headers: update to latest revision
spirv-tools: upgrade 2020.6 -> 2020.7
mesa: update 20.3.4 -> 21.0.0
attr: update 2.4.48 -> 2.5.1
asciidoc: update 9.0.4 -> 9.1.0
libhandy: update 1.0.3 -> 1.2.0
strace: update 5.10 -> 5.11
automake: update 1.16.2 - > 1.16.3
xxhash: import from meta-oe
apt: update 1.8.2.2 -> 2.2.2
Alistair Francis (4):
openssl: Enable building for RISC-V 32-bit
linux-yocto: Add qemuriscv32 as a compatible machine
machine: Initial commit of qemuriscv32
u-boot: Add support for building for qemuriscv32
Andrei Gherzan (3):
gcr: Add support for building without x11
epiphany: Add package configuration for building in developer mode
glibc: Backport patch to fix _SC_LEVEL1_ICACHE_LINESIZE
Anton D. Kachalov (1):
run-postinsts: do not remove postinsts directory.
Awais Belal (2):
libsdl2: disable shared memory for native builds
rootfs.py: uninstall the run-postinsts package if not needed
Bartosz Golaszewski (1):
python3: make pydoc rdepend on python3-io
Bruce Ashfield (27):
linux-yocto/5.10: fix x86 32bit boot warnings
linux-yocto/5.10: fix qemumips testimage failures
linux-yocto/5.10: update to v5.10.17 and -rt31
linux-yocto/5.4: update to v5.4.99
linux-yocto/5.10: update to v5.10.19
linux-yocto/5.4: update to v5.4.101
perf: fix reproducibility issues
linux-yocto/5.4: update to v5.4.103
kern-tools: symbol-why fix and README update
linux-yocto/5.10: update to v5.10.21
linux-yocto/qemuarmv5: fix configuration warning
yocto-bsp: update reference platforms to latest 5.10
perf: reproducibility fixes for pmu-events.c
reproducibile: remove perf from exclusions
linux-yocto/5.10: fix SERIAL_OF_PLATFORM warning
linux-yocto/5.4: update to v5.4.105
linux-yocto/5.10: update to v5.10.23
linux-yocto/5.10: cfg: features/numa: Remove NODES_SPAN_OTHER_NODES option
lttng-modules: update devupstream to 2.12.5+
lttng-modules: backport patches to fix build against 5.12+ kernel
kernel-devsrc: fix on-target scripts/prepare for v5.12+
linux-yocto/5.10: cfg: fix ppc64 configuration warnings
linux-yocto-dev: bump to v5.12-rc
linux-yocto/5.10: update qemuriscv32 v5.10.23
linux-yocto/5.10: update to v5.10.25
linux-yocto/5.4: update to v5.4.107
linux-yocto-rt/5.10: update to -rt34
Changqing Li (1):
go-helloworld: disable module-aware mode
Charlie Davies (9):
bitbake-bblayers/create: Fix incorrect priority help message
bitbake-bblayers/create: Add optional layerid argument
bitbake: bitbake: providers: remove unneeded logging call
bitbake: bitbake: providers: consistent single line formatting between functions
bitbake: bitbake: providers: introduce logic for REQUIRED_VERSION variable
bitbake: bitbake: providers: check for REQUIRED_VERSION in _filterProviders
bitbake: bitbake: lib: add Required Version to Bitbake --show-versions command
bitbake: bitbake: cooker: Add REQUIRED_VERSION checks
multilib_global: handle REQUIRED_VERSION
Chen Qi (3):
python3-jinja2: set CVE_PRODUCT
bitbake: event.py: fix regression about INVALIDCONF
populate_sdk_ext: record METADATA_REVISION
Christopher Larson (2):
buildhistory: add missing vardepsexcludes
image,populate_sdk_base: move 'func' flag setting for sdk command vars
Diego Santa Cruz (2):
rpm: split build and extra functionality into separate packages
sstate-diff-machines.sh: support rpm, deb and tar package types in analysis
Dorinda (8):
meta/recipes-rt: Add HOMEPAGE / DESCRIPTION
meta-skeleton: Add HOMEPAGE / DESCRIPTION
meta/recipes-extended: Add HOMEPAGE / DESCRIPTION
meta/recipes-support: Add HOMEPAGE / DESCRIPTION
meta/recipes-kernel: Add HOMEPAGE / DESCRIPTION
meta/recipes-multimedia: Add HOMEPAGE / DESCRIPTION
meta/recipes-graphics: Add HOMEPAGE / DESCRIPTION
dev-manual/common-task.rst: Added documentation for debuginfod support
Dorinda Bassey (4):
meta/recipes-devtools: Add HOMEPAGE / DESCRIPTION
distrodata.py: Test to track recipes without HOMEPAGE or DESCRIPTION
meta-selftest: Add HOMEPAGE / DESCRIPTION
devshell.bbclass: Exceptions displayed within devpyshell
Douglas Royds (2):
cmake: Fully-qualified path to ar
externalsrc: Detect code changes in submodules
Jon Mason (5):
runqemu: use "raw" instead of "bin" for ovmf
runqemu: add QB_GRAPHICS
runqemu: correct forcing of ttyS0
runqemu: modify novga to conform to documentation
tune-cortexa32: Add hard FPU
Jose Quaresma (4):
spirv-tools: python3 is need not only for the tests
spirv-tools: cleanup an old patch that is not used anymore
gstreamer1.0: upgrade 1.18.3 -> 1.18.4
gstreamer1.0-plugins-good: fix rtpjitterbuffer regression
Kai Kang (2):
toolchain-scripts.bbclass: customize prompt string for SDKs
local.conf.sample.extended: sample value for SDK_PS1
Kevin Hao (1):
meta-yocto-bsp: beaglebone: Set a fixed size for boot partition in WIC image
Khairul Rohaizzat Jamaluddin (1):
glibc: Fix CVE-2021-27645
Khem Raj (33):
python3-cython: Check for files before editing
webkitgtk: Use linker options to reduce memory overhead during linking
webkitgtk: Enhance check for atomics to include 1 byte CAS
qemuppc64: Add a QEMU machine definition for ppc64
linux-yocto: Enable powerpc64le QEMU
formfactor: Add machine config for qemuppc64
inittab: Add getty launch on hvc0 for qemuppc64
parselogs: Allow expected kernel messages for qemuppc64
spirv-tools: Replace strncpy with memcpy
python3-setuptools: Upgrade 54.1.0 -> 54.1.1
perf: Remove libunwind for rv32
Enable qemu usermode on ppc64
cmake.bbclass: Create cmake arch mapping for ppc64le
libucontext: Recognize ppc64le architecture
libunwind: Do not assume libdir for ppc64
gcc: Package new module mapper tool
glib-2.0: Drop volatile qualifier
go: Update to 1.16.2
go-dep: Remove
libunwind: Link with libucontext on musl
libedit: upgrade 20191231-3.1 -> 20210216-3.1
webkitgtk: Reduce stack and heap sizes for jsc on musl
webkitgtk: Add packageconfig to chose between size and speed
webkitgtk: enable strlen and stpcpy on musl/linux too
gcc-sanitizers: Package up hwasan files
apt: Support old resolver as fallback
apt: Do not disable NLS
valgrind: Fix ptests on ppc64 LE
documentation-audit.sh: Fix typo in specifying LICENSE_FLAGS_WHITELIST
image-uefi: Set efi_file for rv32/rv64
grub2: Disable for RISCV32
grub-efi: Re-introduce lost cast to long
grub2: Enable on riscv32
Lee Chee Yang (2):
cve-update-db-native: consider version suffix when update CVE db
cve-check: CVE_VERSION_SUFFIX to work with patched release
Li Wang (1):
linux-dummy: add empty dependent packages
Luca Boccassi (2):
util-linux: split uuid in separate recipe to allow bootstrapping
util-linux: backport patch to skip build of unused objects
Manuel Leonhardt (1):
bitbake: tinfoil: Honor quiet when parsing recipes
Mark Hatle (2):
populate_sdk_ext: Avoid copying and producing .pyc files
populate_sdk_ext: Add support for PR service
Martin Jansa (7):
glib-2.0: call os.path.normpath on THISDIR
glib-2.0: show an error about --cross-file only when such file exists
busybox: refresh the defconfig from 1.33.0
busybox-inittab: rename for PV to match with busybox's PV
iso-codes: fix protocol in SRC_URI
packagegroup-core-weston.bb: add pam to REQUIRED_DISTRO_FEATURES
python3: fix PACKAGECONFIG handling
Michael Opdenacker (4):
bitbake: doc: Update links to documentation
Do not assume working from $HOME
Update documentation URL
documentation/README minor improvements
Michael Trensch (1):
linux-firmware: Fix packaging
Mikko Rapeli (1):
openssl: update to 1.1.1k to fix CVE-2021-3450 and CVE-2021-3449
Ming Liu (2):
kernel-fitimage.bbclass: support both KERNEL_DEVICETREE/EXTERNAL_KERNEL_DEVICETREE
initramfs-framework:rootfs: fix some conditional check
Mingli Yu (1):
libtool: make sure autoheader run before autoconf
Minjae Kim (3):
qemu: fix CVE-2021-20203
git: fix CVE-2021-21300
git: upgrade 2.30.1 -> 2.31.1
Naveen Saini (1):
grub: upgrade 2.04 -> 2.06~rc1
Oleksandr Kravchuk (1):
python3-setuptools: update to 54.1.0
Paul Gortmaker (1):
bitbake: gitignore: ignore runqueue-tests/bitbake-cookerdaemon.log
Peter Kjellerstedt (4):
meson: Correctly set uid/gid of installed files
uninative-tarball: Add a dependency on nativesdk-glibc-dbg
metadata_scm.bbclass: Use immediate expansion for the METADATA_* variables
license.bbclass: Improve parsing time when INCOMPATIBLE_LICENSES is big
Petr Vorel (1):
scripts/verify-bashisms: Update checkbashisms.pl URL
Purushottam Choudhary (1):
shadow: whitelist CVE-2013-4235
Randy MacLeod (2):
ffmpeg: upgrade 4.3.1 -> 4.3.2
zstd: upgrade 1.4.8 -> 1.4.9
Richard Purdie (33):
ltp: Fix another determinism issue
build-appliance-image: Drop kernel module handling
ltp: Further extend reproducibility patch
bitbake: runqueue: Fix task execution corruption issue
bitbake: runqueue: Add setscene task overlap sanity check
bitbake: __init__.py: Fix bitbake debug log handling
ltp: Fix determinism issue
ltp: Fix libswapon issue properly
bitbake: event: Fix multiconfig event handler change performance regressions
bitbake: event: Fix another 'if d' test to test for None explictly
bitbake: tests/color: Fix event register to pass the datastore
bitbake: bblayers/query: Update to handle REQUIRED_VERSION
scripts/contrib/list-packageconfig-flags: Upate for tinfoil API changes
layer.conf: Update for hardknott release series
layer.conf: Update for hardknott release series
build-appliance-image: Update to master head revision
layer.conf: Add gatesgarth back for now to allow for transition
build-appliance-image: Update to master head revision
meson: Work around determinism issue
lttng-tools: upgrade 2.12.2 -> 2.12.3
lttng-modules: upgrade 2.12.4 -> 2.12.5
sqlite3: upgrade 3.34.1 -> 3.35.0
sudo: upgrade 1.9.5p2 -> 1.9.6
selftest/reproducible: Drop ovmf exclusion
selftest/wic: Fix dependency issue in rawcopy test
layer.conf: Drop gatesgarth from the layer series names
bitbake: build: Add find_stale_stamps function
bitbake: runqueue/event: Add an event for notifying of stale setscene tasks
sstate: Remove stale objects before the main build
sstate: Add documentation for eventhandlers and tweak naming
site/elfutils/libunistring: Drop patching for iconv and set in site file
build-appliance-image: Update to master head revision
util-linux-libuuid: Simplify recipe and rename from util-linux-uuid
Robert P. J. Day (8):
bitbake-whatchanged: change ending quote to proper period
bitbake: doc: move BBFILES_DYNAMIC for alphabetical order
ref-manual: remove erroneous '\*' from variables list
bitbake: doc: mention that addtask handles multiple dependencies
bitbake: doc: fix glossary link for BB_INVALIDCONF variable
bitbake: doc: fix syntax error in layer.conf example
bitbake.conf: correct description of HOSTTOOLS_DIR
packagegroups: delete useless "PROVIDES" lines
Robert Yang (1):
image.bbclass: deltask do_packagedata
Ross Burton (13):
libinput: less parallism to increase chances the test suite works
ptest-packagelists: remove libinput-ptest
insane: don't check for a warning string that is never output
gcc: add an option for --enable-poison-system-directories to be fatal
gcc-cross: make use of the system include directories fatal
oeqa/selftest: add test to verify that poisoned sysroots are detected
ovmf: make output binaries reproducible
base: respect downloadfilename when sniffing the SRC_URI for dependencies
lib/oe/utils: add directory size function
classes/image: use oe.utils.directory_size() instead of du
bitbake.conf: ensure BUILD_* tools match target tools
meson: fix native/host confusion in gobject-introspection
meson: use native-file instead of environment variables
Sakib Sajal (2):
buildstats.bbclass: improve timeout handling
scripts: add oe-time-dd-test.sh
Scott Murray (1):
u-boot: Fix CVE-2021-27097, CVE-2021-27138
Stefan Ghinea (1):
wpa-supplicant: fix CVE-2021-27803
Stefan Schmidt (1):
systemd-conf: do not ask for DHCP if configured on kernel command line
Tomasz Dziendzielski (2):
bitbake: runqueue: Print pseudo.log if fakeroot task failed
bitbake: codeparser: Fix TypeError in bitbake debug mode
Ulrich ?lmann (1):
gstreamer1.0: add support for coretracers
Ulrich Ölmann (3):
common-tasks.rst: fix 'wic cp' command
common-tasks.rst: fix typo
local.conf.sample: fix typo
Vivien Didelot (6):
systemd-container: sort RRECOMMENDS alphabetically
systemd-container: recommend tar
systemd-container: recommends StartExecPre modules
poky: fix typos
poky: don't use space with +=
beaglebone-yocto: allow other virtual/bootloader
Wang Mingyu (20):
shaderc: upgrade 2020.4 -> 2020.5
stress-ng: upgrade 0.12.03 -> 0.12.04
taglib: upgrade 1.11.1 -> 1.12
vala: upgrade 0.50.3 -> 0.50.4
python3-pygments: upgrade 2.8.0 -> 2.8.1
python3-zipp: upgrade 3.4.0 -> 3.4.1
sysklogd: upgrade 2.2.1 -> 2.2.2
help2man: upgrade 1.48.1 -> 1.48.2
iso-codes: upgrade 4.5.0 -> 4.6.0
jquery: upgrade 3.5.1 -> 3.6.0
ovmf: upgrade 202011 -> 202102
msmtp: upgrade 1.8.14 -> 1.8.15
gptfdisk: upgrade 1.0.6 -> 1.0.7
vulkan-headers: upgrade 1.2.162.0 -> 1.2.170.0
vulkan-loader: upgrade 1.2.162.0 -> 1.2.170.0
vulkan-tools: upgrade 1.2.162.1 -> 1.2.170.0
gcc: Update patch to only patch files once
openssh: upgrade 8.4p1 -> 8.5p1
openssh: Improve LICENSE to show BSD license variants.
gnutls: upgrade 3.7.0 -> 3.7.1
Yanfei Xu (1):
glibc: fix pthread_cond_destroy hangs with process-shared mutex
Yann Dirson (1):
ffmpeg: disable GPL features by default
Yi Fan Yu (1):
valgrind: Fix nlcontrolc.vgtest
jan (1):
cve-update-db-native: Allow to overrule the URL in a bbappend.
wangmy@fujitsu.com (1):
systemd: upgrade 247.3 -> 247.4
zhengruoqin (3):
sudo: upgrade 1.9.6 -> 1.9.6p1
liburi-perl: upgrade 1.74 -> 5.08
stress-ng: upgrade 0.12.04 -> 0.12.05
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I04195d4c610ca1674dd736eceeb6442d974cb711
Diffstat (limited to 'poky/meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch')
-rw-r--r-- | poky/meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/poky/meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch b/poky/meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch deleted file mode 100644 index c9536e68e..000000000 --- a/poky/meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch +++ /dev/null @@ -1,246 +0,0 @@ -From c005f62f5c4b26a77b916c8f76a852324439ecb3 Mon Sep 17 00:00:00 2001 -From: Peter Jones <pjones@redhat.com> -Date: Mon, 15 Jun 2020 12:15:29 -0400 -Subject: [PATCH 2/9] calloc: Make sure we always have an overflow-checking - calloc() available - -This tries to make sure that everywhere in this source tree, we always have -an appropriate version of calloc() (i.e. grub_calloc(), xcalloc(), etc.) -available, and that they all safely check for overflow and return NULL when -it would occur. - -Upstream-Status: Backport [commit 64e26162ebfe68317c143ca5ec996c892019f8f8 -from https://git.savannah.gnu.org/git/grub.git] - -Signed-off-by: Peter Jones <pjones@redhat.com> -Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> -Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com> ---- - grub-core/kern/emu/misc.c | 12 ++++++++++++ - grub-core/kern/emu/mm.c | 10 ++++++++++ - grub-core/kern/mm.c | 40 ++++++++++++++++++++++++++++++++++++++ - grub-core/lib/libgcrypt_wrap/mem.c | 11 +++++++++-- - grub-core/lib/posix_wrap/stdlib.h | 8 +++++++- - include/grub/emu/misc.h | 1 + - include/grub/mm.h | 6 ++++++ - 7 files changed, 85 insertions(+), 3 deletions(-) - -diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 65db79b..dfd8a8e 100644 ---- a/grub-core/kern/emu/misc.c -+++ b/grub-core/kern/emu/misc.c -@@ -85,6 +85,18 @@ grub_util_error (const char *fmt, ...) - exit (1); - } - -+void * -+xcalloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *p; -+ -+ p = calloc (nmemb, size); -+ if (!p) -+ grub_util_error ("%s", _("out of memory")); -+ -+ return p; -+} -+ - void * - xmalloc (grub_size_t size) - { -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index f262e95..145b01d 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -25,6 +25,16 @@ - #include <string.h> - #include <grub/i18n.h> - -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ ret = calloc (nmemb, size); -+ if (!ret) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ return ret; -+} -+ - void * - grub_malloc (grub_size_t size) - { -diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c -index ee88ff6..f2822a8 100644 ---- a/grub-core/kern/mm.c -+++ b/grub-core/kern/mm.c -@@ -67,8 +67,10 @@ - #include <grub/dl.h> - #include <grub/i18n.h> - #include <grub/mm_private.h> -+#include <grub/safemath.h> - - #ifdef MM_DEBUG -+# undef grub_calloc - # undef grub_malloc - # undef grub_zalloc - # undef grub_realloc -@@ -375,6 +377,30 @@ grub_memalign (grub_size_t align, grub_size_t size) - return 0; - } - -+/* -+ * Allocate NMEMB instances of SIZE bytes and return the pointer, or error on -+ * integer overflow. -+ */ -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ grub_size_t sz = 0; -+ -+ if (grub_mul (nmemb, size, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_memalign (0, sz); -+ if (!ret) -+ return NULL; -+ -+ grub_memset (ret, 0, sz); -+ return ret; -+} -+ - /* Allocate SIZE bytes and return the pointer. */ - void * - grub_malloc (grub_size_t size) -@@ -561,6 +587,20 @@ grub_mm_dump (unsigned lineno) - grub_printf ("\n"); - } - -+void * -+grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t size) -+{ -+ void *ptr; -+ -+ if (grub_mm_debug) -+ grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", -+ file, line, size); -+ ptr = grub_calloc (nmemb, size); -+ if (grub_mm_debug) -+ grub_printf ("%p\n", ptr); -+ return ptr; -+} -+ - void * - grub_debug_malloc (const char *file, int line, grub_size_t size) - { -diff --git a/grub-core/lib/libgcrypt_wrap/mem.c b/grub-core/lib/libgcrypt_wrap/mem.c -index beeb661..74c6eaf 100644 ---- a/grub-core/lib/libgcrypt_wrap/mem.c -+++ b/grub-core/lib/libgcrypt_wrap/mem.c -@@ -4,6 +4,7 @@ - #include <grub/crypto.h> - #include <grub/dl.h> - #include <grub/env.h> -+#include <grub/safemath.h> - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -36,7 +37,10 @@ void * - gcry_xcalloc (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -@@ -56,7 +60,10 @@ void * - gcry_xcalloc_secure (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -diff --git a/grub-core/lib/posix_wrap/stdlib.h b/grub-core/lib/posix_wrap/stdlib.h -index 3b46f47..7a8d385 100644 ---- a/grub-core/lib/posix_wrap/stdlib.h -+++ b/grub-core/lib/posix_wrap/stdlib.h -@@ -21,6 +21,7 @@ - - #include <grub/mm.h> - #include <grub/misc.h> -+#include <grub/safemath.h> - - static inline void - free (void *ptr) -@@ -37,7 +38,12 @@ malloc (grub_size_t size) - static inline void * - calloc (grub_size_t size, grub_size_t nelem) - { -- return grub_zalloc (size * nelem); -+ grub_size_t sz; -+ -+ if (grub_mul (size, nelem, &sz)) -+ return NULL; -+ -+ return grub_zalloc (sz); - } - - static inline void * -diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h -index ce464cf..ff9c48a 100644 ---- a/include/grub/emu/misc.h -+++ b/include/grub/emu/misc.h -@@ -47,6 +47,7 @@ grub_util_device_is_mapped (const char *dev); - #define GRUB_HOST_PRIuLONG_LONG "llu" - #define GRUB_HOST_PRIxLONG_LONG "llx" - -+void * EXPORT_FUNC(xcalloc) (grub_size_t nmemb, grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xmalloc) (grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) WARN_UNUSED_RESULT; - char * EXPORT_FUNC(xstrdup) (const char *str) WARN_UNUSED_RESULT; -diff --git a/include/grub/mm.h b/include/grub/mm.h -index 28e2e53..9c38dd3 100644 ---- a/include/grub/mm.h -+++ b/include/grub/mm.h -@@ -29,6 +29,7 @@ - #endif - - void grub_mm_init_region (void *addr, grub_size_t size); -+void *EXPORT_FUNC(grub_calloc) (grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_malloc) (grub_size_t size); - void *EXPORT_FUNC(grub_zalloc) (grub_size_t size); - void EXPORT_FUNC(grub_free) (void *ptr); -@@ -48,6 +49,9 @@ extern int EXPORT_VAR(grub_mm_debug); - void grub_mm_dump_free (void); - void grub_mm_dump (unsigned lineno); - -+#define grub_calloc(nmemb, size) \ -+ grub_debug_calloc (GRUB_FILE, __LINE__, nmemb, size) -+ - #define grub_malloc(size) \ - grub_debug_malloc (GRUB_FILE, __LINE__, size) - -@@ -63,6 +67,8 @@ void grub_mm_dump (unsigned lineno); - #define grub_free(ptr) \ - grub_debug_free (GRUB_FILE, __LINE__, ptr) - -+void *EXPORT_FUNC(grub_debug_calloc) (const char *file, int line, -+ grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_debug_malloc) (const char *file, int line, - grub_size_t size); - void *EXPORT_FUNC(grub_debug_zalloc) (const char *file, int line, --- -2.14.4 - |