1*4882a593SmuzhiyunFrom 8185711241d73931269f402bb6799f7e2c58f04b Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Peter Jones <pjones@redhat.com> 3*4882a593SmuzhiyunDate: Mon, 15 Jun 2020 12:26:01 -0400 4*4882a593SmuzhiyunSubject: [PATCH] calloc: Use calloc() at most places 5*4882a593SmuzhiyunMIME-Version: 1.0 6*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8 7*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunThis modifies most of the places we do some form of: 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun X = malloc(Y * Z); 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunto use calloc(Y, Z) instead. 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunAmong other issues, this fixes: 16*4882a593Smuzhiyun - allocation of integer overflow in grub_png_decode_image_header() 17*4882a593Smuzhiyun reported by Chris Coulson, 18*4882a593Smuzhiyun - allocation of integer overflow in luks_recover_key() 19*4882a593Smuzhiyun reported by Chris Coulson, 20*4882a593Smuzhiyun - allocation of integer overflow in grub_lvm_detect() 21*4882a593Smuzhiyun reported by Chris Coulson. 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunFixes: CVE-2020-14308 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunSigned-off-by: Peter Jones <pjones@redhat.com> 26*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com> 27*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> 28*4882a593Smuzhiyun--- 29*4882a593Smuzhiyun grub-core/bus/usb/usbhub.c | 8 ++++---- 30*4882a593Smuzhiyun grub-core/commands/efi/lsefisystab.c | 3 ++- 31*4882a593Smuzhiyun grub-core/commands/legacycfg.c | 6 +++--- 32*4882a593Smuzhiyun grub-core/commands/menuentry.c | 2 +- 33*4882a593Smuzhiyun grub-core/commands/nativedisk.c | 2 +- 34*4882a593Smuzhiyun grub-core/commands/parttool.c | 12 +++++++++--- 35*4882a593Smuzhiyun grub-core/commands/regexp.c | 2 +- 36*4882a593Smuzhiyun grub-core/commands/search_wrap.c | 2 +- 37*4882a593Smuzhiyun grub-core/disk/diskfilter.c | 4 ++-- 38*4882a593Smuzhiyun grub-core/disk/ieee1275/ofdisk.c | 2 +- 39*4882a593Smuzhiyun grub-core/disk/ldm.c | 14 +++++++------- 40*4882a593Smuzhiyun grub-core/disk/luks.c | 2 +- 41*4882a593Smuzhiyun grub-core/disk/lvm.c | 8 ++++---- 42*4882a593Smuzhiyun grub-core/disk/xen/xendisk.c | 2 +- 43*4882a593Smuzhiyun grub-core/efiemu/loadcore.c | 2 +- 44*4882a593Smuzhiyun grub-core/efiemu/mm.c | 6 +++--- 45*4882a593Smuzhiyun grub-core/font/font.c | 3 +-- 46*4882a593Smuzhiyun grub-core/fs/affs.c | 6 +++--- 47*4882a593Smuzhiyun grub-core/fs/btrfs.c | 6 +++--- 48*4882a593Smuzhiyun grub-core/fs/hfs.c | 2 +- 49*4882a593Smuzhiyun grub-core/fs/hfsplus.c | 6 +++--- 50*4882a593Smuzhiyun grub-core/fs/iso9660.c | 2 +- 51*4882a593Smuzhiyun grub-core/fs/ntfs.c | 4 ++-- 52*4882a593Smuzhiyun grub-core/fs/sfs.c | 2 +- 53*4882a593Smuzhiyun grub-core/fs/tar.c | 2 +- 54*4882a593Smuzhiyun grub-core/fs/udf.c | 4 ++-- 55*4882a593Smuzhiyun grub-core/fs/zfs/zfs.c | 4 ++-- 56*4882a593Smuzhiyun grub-core/gfxmenu/gui_string_util.c | 2 +- 57*4882a593Smuzhiyun grub-core/gfxmenu/widget-box.c | 4 ++-- 58*4882a593Smuzhiyun grub-core/io/gzio.c | 2 +- 59*4882a593Smuzhiyun grub-core/kern/efi/efi.c | 6 +++--- 60*4882a593Smuzhiyun grub-core/kern/emu/hostdisk.c | 2 +- 61*4882a593Smuzhiyun grub-core/kern/fs.c | 2 +- 62*4882a593Smuzhiyun grub-core/kern/misc.c | 2 +- 63*4882a593Smuzhiyun grub-core/kern/parser.c | 2 +- 64*4882a593Smuzhiyun grub-core/kern/uboot/uboot.c | 2 +- 65*4882a593Smuzhiyun grub-core/lib/libgcrypt/cipher/ac.c | 8 ++++---- 66*4882a593Smuzhiyun grub-core/lib/libgcrypt/cipher/primegen.c | 4 ++-- 67*4882a593Smuzhiyun grub-core/lib/libgcrypt/cipher/pubkey.c | 4 ++-- 68*4882a593Smuzhiyun grub-core/lib/priority_queue.c | 2 +- 69*4882a593Smuzhiyun grub-core/lib/reed_solomon.c | 7 +++---- 70*4882a593Smuzhiyun grub-core/lib/relocator.c | 10 +++++----- 71*4882a593Smuzhiyun grub-core/lib/zstd/fse_decompress.c | 2 +- 72*4882a593Smuzhiyun grub-core/loader/arm/linux.c | 2 +- 73*4882a593Smuzhiyun grub-core/loader/efi/chainloader.c | 2 +- 74*4882a593Smuzhiyun grub-core/loader/i386/bsdXX.c | 2 +- 75*4882a593Smuzhiyun grub-core/loader/i386/xnu.c | 4 ++-- 76*4882a593Smuzhiyun grub-core/loader/macho.c | 2 +- 77*4882a593Smuzhiyun grub-core/loader/multiboot_elfxx.c | 2 +- 78*4882a593Smuzhiyun grub-core/loader/xnu.c | 2 +- 79*4882a593Smuzhiyun grub-core/mmap/mmap.c | 4 ++-- 80*4882a593Smuzhiyun grub-core/net/bootp.c | 2 +- 81*4882a593Smuzhiyun grub-core/net/dns.c | 10 +++++----- 82*4882a593Smuzhiyun grub-core/net/net.c | 4 ++-- 83*4882a593Smuzhiyun grub-core/normal/charset.c | 10 +++++----- 84*4882a593Smuzhiyun grub-core/normal/cmdline.c | 14 +++++++------- 85*4882a593Smuzhiyun grub-core/normal/menu_entry.c | 14 +++++++------- 86*4882a593Smuzhiyun grub-core/normal/menu_text.c | 4 ++-- 87*4882a593Smuzhiyun grub-core/normal/term.c | 4 ++-- 88*4882a593Smuzhiyun grub-core/osdep/linux/getroot.c | 6 +++--- 89*4882a593Smuzhiyun grub-core/osdep/unix/config.c | 2 +- 90*4882a593Smuzhiyun grub-core/osdep/windows/getroot.c | 2 +- 91*4882a593Smuzhiyun grub-core/osdep/windows/hostdisk.c | 4 ++-- 92*4882a593Smuzhiyun grub-core/osdep/windows/init.c | 2 +- 93*4882a593Smuzhiyun grub-core/osdep/windows/platform.c | 4 ++-- 94*4882a593Smuzhiyun grub-core/osdep/windows/relpath.c | 2 +- 95*4882a593Smuzhiyun grub-core/partmap/gpt.c | 2 +- 96*4882a593Smuzhiyun grub-core/partmap/msdos.c | 2 +- 97*4882a593Smuzhiyun grub-core/script/execute.c | 2 +- 98*4882a593Smuzhiyun grub-core/tests/fake_input.c | 2 +- 99*4882a593Smuzhiyun grub-core/tests/video_checksum.c | 6 +++--- 100*4882a593Smuzhiyun grub-core/video/capture.c | 2 +- 101*4882a593Smuzhiyun grub-core/video/emu/sdl.c | 2 +- 102*4882a593Smuzhiyun grub-core/video/i386/pc/vga.c | 2 +- 103*4882a593Smuzhiyun grub-core/video/readers/png.c | 2 +- 104*4882a593Smuzhiyun include/grub/unicode.h | 4 ++-- 105*4882a593Smuzhiyun util/getroot.c | 2 +- 106*4882a593Smuzhiyun util/grub-file.c | 2 +- 107*4882a593Smuzhiyun util/grub-fstest.c | 4 ++-- 108*4882a593Smuzhiyun util/grub-install-common.c | 2 +- 109*4882a593Smuzhiyun util/grub-install.c | 4 ++-- 110*4882a593Smuzhiyun util/grub-mkimagexx.c | 6 ++---- 111*4882a593Smuzhiyun util/grub-mkrescue.c | 4 ++-- 112*4882a593Smuzhiyun util/grub-mkstandalone.c | 2 +- 113*4882a593Smuzhiyun util/grub-pe2elf.c | 12 +++++------- 114*4882a593Smuzhiyun util/grub-probe.c | 4 ++-- 115*4882a593Smuzhiyun 86 files changed, 176 insertions(+), 175 deletions(-) 116*4882a593Smuzhiyun 117*4882a593Smuzhiyundiff --git a/grub-core/bus/usb/usbhub.c b/grub-core/bus/usb/usbhub.c 118*4882a593Smuzhiyunindex 34a7ff1b5..a06cce302 100644 119*4882a593Smuzhiyun--- a/grub-core/bus/usb/usbhub.c 120*4882a593Smuzhiyun+++ b/grub-core/bus/usb/usbhub.c 121*4882a593Smuzhiyun@@ -149,8 +149,8 @@ grub_usb_add_hub (grub_usb_device_t dev) 122*4882a593Smuzhiyun grub_usb_set_configuration (dev, 1); 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun dev->nports = hubdesc.portcnt; 125*4882a593Smuzhiyun- dev->children = grub_zalloc (hubdesc.portcnt * sizeof (dev->children[0])); 126*4882a593Smuzhiyun- dev->ports = grub_zalloc (dev->nports * sizeof (dev->ports[0])); 127*4882a593Smuzhiyun+ dev->children = grub_calloc (hubdesc.portcnt, sizeof (dev->children[0])); 128*4882a593Smuzhiyun+ dev->ports = grub_calloc (dev->nports, sizeof (dev->ports[0])); 129*4882a593Smuzhiyun if (!dev->children || !dev->ports) 130*4882a593Smuzhiyun { 131*4882a593Smuzhiyun grub_free (dev->children); 132*4882a593Smuzhiyun@@ -268,8 +268,8 @@ grub_usb_controller_dev_register_iter (grub_usb_controller_t controller, void *d 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun /* Query the number of ports the root Hub has. */ 135*4882a593Smuzhiyun hub->nports = controller->dev->hubports (controller); 136*4882a593Smuzhiyun- hub->devices = grub_zalloc (sizeof (hub->devices[0]) * hub->nports); 137*4882a593Smuzhiyun- hub->ports = grub_zalloc (sizeof (hub->ports[0]) * hub->nports); 138*4882a593Smuzhiyun+ hub->devices = grub_calloc (hub->nports, sizeof (hub->devices[0])); 139*4882a593Smuzhiyun+ hub->ports = grub_calloc (hub->nports, sizeof (hub->ports[0])); 140*4882a593Smuzhiyun if (!hub->devices || !hub->ports) 141*4882a593Smuzhiyun { 142*4882a593Smuzhiyun grub_free (hub->devices); 143*4882a593Smuzhiyundiff --git a/grub-core/commands/efi/lsefisystab.c b/grub-core/commands/efi/lsefisystab.c 144*4882a593Smuzhiyunindex df1030221..cd81507f5 100644 145*4882a593Smuzhiyun--- a/grub-core/commands/efi/lsefisystab.c 146*4882a593Smuzhiyun+++ b/grub-core/commands/efi/lsefisystab.c 147*4882a593Smuzhiyun@@ -71,7 +71,8 @@ grub_cmd_lsefisystab (struct grub_command *cmd __attribute__ ((unused)), 148*4882a593Smuzhiyun grub_printf ("Vendor: "); 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun for (vendor_utf16 = st->firmware_vendor; *vendor_utf16; vendor_utf16++); 151*4882a593Smuzhiyun- vendor = grub_malloc (4 * (vendor_utf16 - st->firmware_vendor) + 1); 152*4882a593Smuzhiyun+ /* Allocate extra 3 bytes to simplify math. */ 153*4882a593Smuzhiyun+ vendor = grub_calloc (4, vendor_utf16 - st->firmware_vendor + 1); 154*4882a593Smuzhiyun if (!vendor) 155*4882a593Smuzhiyun return grub_errno; 156*4882a593Smuzhiyun *grub_utf16_to_utf8 ((grub_uint8_t *) vendor, st->firmware_vendor, 157*4882a593Smuzhiyundiff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c 158*4882a593Smuzhiyunindex db7a8f002..5e3ec0d5e 100644 159*4882a593Smuzhiyun--- a/grub-core/commands/legacycfg.c 160*4882a593Smuzhiyun+++ b/grub-core/commands/legacycfg.c 161*4882a593Smuzhiyun@@ -314,7 +314,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), 162*4882a593Smuzhiyun if (argc < 2) 163*4882a593Smuzhiyun return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun- cutargs = grub_malloc (sizeof (cutargs[0]) * (argc - 1)); 166*4882a593Smuzhiyun+ cutargs = grub_calloc (argc - 1, sizeof (cutargs[0])); 167*4882a593Smuzhiyun if (!cutargs) 168*4882a593Smuzhiyun return grub_errno; 169*4882a593Smuzhiyun cutargc = argc - 1; 170*4882a593Smuzhiyun@@ -436,7 +436,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), 171*4882a593Smuzhiyun { 172*4882a593Smuzhiyun char rbuf[3] = "-r"; 173*4882a593Smuzhiyun bsdargc = cutargc + 2; 174*4882a593Smuzhiyun- bsdargs = grub_malloc (sizeof (bsdargs[0]) * bsdargc); 175*4882a593Smuzhiyun+ bsdargs = grub_calloc (bsdargc, sizeof (bsdargs[0])); 176*4882a593Smuzhiyun if (!bsdargs) 177*4882a593Smuzhiyun { 178*4882a593Smuzhiyun err = grub_errno; 179*4882a593Smuzhiyun@@ -559,7 +559,7 @@ grub_cmd_legacy_initrdnounzip (struct grub_command *mycmd __attribute__ ((unused 180*4882a593Smuzhiyun return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("can't find command `%s'"), 181*4882a593Smuzhiyun "module"); 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun- newargs = grub_malloc ((argc + 1) * sizeof (newargs[0])); 184*4882a593Smuzhiyun+ newargs = grub_calloc (argc + 1, sizeof (newargs[0])); 185*4882a593Smuzhiyun if (!newargs) 186*4882a593Smuzhiyun return grub_errno; 187*4882a593Smuzhiyun grub_memcpy (newargs + 1, args, argc * sizeof (newargs[0])); 188*4882a593Smuzhiyundiff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c 189*4882a593Smuzhiyunindex 2c5363da7..9164df744 100644 190*4882a593Smuzhiyun--- a/grub-core/commands/menuentry.c 191*4882a593Smuzhiyun+++ b/grub-core/commands/menuentry.c 192*4882a593Smuzhiyun@@ -154,7 +154,7 @@ grub_normal_add_menu_entry (int argc, const char **args, 193*4882a593Smuzhiyun goto fail; 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun /* Save argc, args to pass as parameters to block arg later. */ 196*4882a593Smuzhiyun- menu_args = grub_malloc (sizeof (char*) * (argc + 1)); 197*4882a593Smuzhiyun+ menu_args = grub_calloc (argc + 1, sizeof (char *)); 198*4882a593Smuzhiyun if (! menu_args) 199*4882a593Smuzhiyun goto fail; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyundiff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c 202*4882a593Smuzhiyunindex 699447d11..7c8f97f6a 100644 203*4882a593Smuzhiyun--- a/grub-core/commands/nativedisk.c 204*4882a593Smuzhiyun+++ b/grub-core/commands/nativedisk.c 205*4882a593Smuzhiyun@@ -195,7 +195,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), 206*4882a593Smuzhiyun else 207*4882a593Smuzhiyun path_prefix = prefix; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun- mods = grub_malloc (argc * sizeof (mods[0])); 210*4882a593Smuzhiyun+ mods = grub_calloc (argc, sizeof (mods[0])); 211*4882a593Smuzhiyun if (!mods) 212*4882a593Smuzhiyun return grub_errno; 213*4882a593Smuzhiyun 214*4882a593Smuzhiyundiff --git a/grub-core/commands/parttool.c b/grub-core/commands/parttool.c 215*4882a593Smuzhiyunindex 22b46b187..051e31320 100644 216*4882a593Smuzhiyun--- a/grub-core/commands/parttool.c 217*4882a593Smuzhiyun+++ b/grub-core/commands/parttool.c 218*4882a593Smuzhiyun@@ -59,7 +59,13 @@ grub_parttool_register(const char *part_name, 219*4882a593Smuzhiyun for (nargs = 0; args[nargs].name != 0; nargs++); 220*4882a593Smuzhiyun cur->nargs = nargs; 221*4882a593Smuzhiyun cur->args = (struct grub_parttool_argdesc *) 222*4882a593Smuzhiyun- grub_malloc ((nargs + 1) * sizeof (struct grub_parttool_argdesc)); 223*4882a593Smuzhiyun+ grub_calloc (nargs + 1, sizeof (struct grub_parttool_argdesc)); 224*4882a593Smuzhiyun+ if (!cur->args) 225*4882a593Smuzhiyun+ { 226*4882a593Smuzhiyun+ grub_free (cur); 227*4882a593Smuzhiyun+ curhandle--; 228*4882a593Smuzhiyun+ return -1; 229*4882a593Smuzhiyun+ } 230*4882a593Smuzhiyun grub_memcpy (cur->args, args, 231*4882a593Smuzhiyun (nargs + 1) * sizeof (struct grub_parttool_argdesc)); 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun@@ -257,7 +263,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), 234*4882a593Smuzhiyun return err; 235*4882a593Smuzhiyun } 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun- parsed = (int *) grub_zalloc (argc * sizeof (int)); 238*4882a593Smuzhiyun+ parsed = (int *) grub_calloc (argc, sizeof (int)); 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun for (i = 1; i < argc; i++) 241*4882a593Smuzhiyun if (! parsed[i]) 242*4882a593Smuzhiyun@@ -290,7 +296,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), 243*4882a593Smuzhiyun } 244*4882a593Smuzhiyun ptool = cur; 245*4882a593Smuzhiyun pargs = (struct grub_parttool_args *) 246*4882a593Smuzhiyun- grub_zalloc (ptool->nargs * sizeof (struct grub_parttool_args)); 247*4882a593Smuzhiyun+ grub_calloc (ptool->nargs, sizeof (struct grub_parttool_args)); 248*4882a593Smuzhiyun for (j = i; j < argc; j++) 249*4882a593Smuzhiyun if (! parsed[j]) 250*4882a593Smuzhiyun { 251*4882a593Smuzhiyundiff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c 252*4882a593Smuzhiyunindex f00b184c8..4019164f3 100644 253*4882a593Smuzhiyun--- a/grub-core/commands/regexp.c 254*4882a593Smuzhiyun+++ b/grub-core/commands/regexp.c 255*4882a593Smuzhiyun@@ -116,7 +116,7 @@ grub_cmd_regexp (grub_extcmd_context_t ctxt, int argc, char **args) 256*4882a593Smuzhiyun if (ret) 257*4882a593Smuzhiyun goto fail; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun- matches = grub_zalloc (sizeof (*matches) * (regex.re_nsub + 1)); 260*4882a593Smuzhiyun+ matches = grub_calloc (regex.re_nsub + 1, sizeof (*matches)); 261*4882a593Smuzhiyun if (! matches) 262*4882a593Smuzhiyun goto fail; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyundiff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c 265*4882a593Smuzhiyunindex d7fd26b94..47fc8eb99 100644 266*4882a593Smuzhiyun--- a/grub-core/commands/search_wrap.c 267*4882a593Smuzhiyun+++ b/grub-core/commands/search_wrap.c 268*4882a593Smuzhiyun@@ -122,7 +122,7 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) 269*4882a593Smuzhiyun for (i = 0; state[SEARCH_HINT_BAREMETAL].args[i]; i++) 270*4882a593Smuzhiyun nhints++; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun- hints = grub_malloc (sizeof (hints[0]) * nhints); 273*4882a593Smuzhiyun+ hints = grub_calloc (nhints, sizeof (hints[0])); 274*4882a593Smuzhiyun if (!hints) 275*4882a593Smuzhiyun return grub_errno; 276*4882a593Smuzhiyun j = 0; 277*4882a593Smuzhiyundiff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c 278*4882a593Smuzhiyunindex c3b578acf..68ca9e0be 100644 279*4882a593Smuzhiyun--- a/grub-core/disk/diskfilter.c 280*4882a593Smuzhiyun+++ b/grub-core/disk/diskfilter.c 281*4882a593Smuzhiyun@@ -1134,7 +1134,7 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb, 282*4882a593Smuzhiyun array->lvs->segments->node_count = nmemb; 283*4882a593Smuzhiyun array->lvs->segments->raid_member_size = disk_size; 284*4882a593Smuzhiyun array->lvs->segments->nodes 285*4882a593Smuzhiyun- = grub_zalloc (nmemb * sizeof (array->lvs->segments->nodes[0])); 286*4882a593Smuzhiyun+ = grub_calloc (nmemb, sizeof (array->lvs->segments->nodes[0])); 287*4882a593Smuzhiyun array->lvs->segments->stripe_size = stripe_size; 288*4882a593Smuzhiyun for (i = 0; i < nmemb; i++) 289*4882a593Smuzhiyun { 290*4882a593Smuzhiyun@@ -1226,7 +1226,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, 291*4882a593Smuzhiyun grub_partition_t p; 292*4882a593Smuzhiyun for (p = disk->partition; p; p = p->parent) 293*4882a593Smuzhiyun s++; 294*4882a593Smuzhiyun- pv->partmaps = xmalloc (s * sizeof (pv->partmaps[0])); 295*4882a593Smuzhiyun+ pv->partmaps = xcalloc (s, sizeof (pv->partmaps[0])); 296*4882a593Smuzhiyun s = 0; 297*4882a593Smuzhiyun for (p = disk->partition; p; p = p->parent) 298*4882a593Smuzhiyun pv->partmaps[s++] = xstrdup (p->partmap->name); 299*4882a593Smuzhiyundiff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c 300*4882a593Smuzhiyunindex f73257e66..03674cb47 100644 301*4882a593Smuzhiyun--- a/grub-core/disk/ieee1275/ofdisk.c 302*4882a593Smuzhiyun+++ b/grub-core/disk/ieee1275/ofdisk.c 303*4882a593Smuzhiyun@@ -297,7 +297,7 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) 304*4882a593Smuzhiyun /* Power machines documentation specify 672 as maximum SAS disks in 305*4882a593Smuzhiyun one system. Using a slightly larger value to be safe. */ 306*4882a593Smuzhiyun table_size = 768; 307*4882a593Smuzhiyun- table = grub_malloc (table_size * sizeof (grub_uint64_t)); 308*4882a593Smuzhiyun+ table = grub_calloc (table_size, sizeof (grub_uint64_t)); 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun if (!table) 311*4882a593Smuzhiyun { 312*4882a593Smuzhiyundiff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c 313*4882a593Smuzhiyunindex 2a22d2d6c..e6323701a 100644 314*4882a593Smuzhiyun--- a/grub-core/disk/ldm.c 315*4882a593Smuzhiyun+++ b/grub-core/disk/ldm.c 316*4882a593Smuzhiyun@@ -323,8 +323,8 @@ make_vg (grub_disk_t disk, 317*4882a593Smuzhiyun lv->segments->type = GRUB_DISKFILTER_MIRROR; 318*4882a593Smuzhiyun lv->segments->node_count = 0; 319*4882a593Smuzhiyun lv->segments->node_alloc = 8; 320*4882a593Smuzhiyun- lv->segments->nodes = grub_zalloc (sizeof (*lv->segments->nodes) 321*4882a593Smuzhiyun- * lv->segments->node_alloc); 322*4882a593Smuzhiyun+ lv->segments->nodes = grub_calloc (lv->segments->node_alloc, 323*4882a593Smuzhiyun+ sizeof (*lv->segments->nodes)); 324*4882a593Smuzhiyun if (!lv->segments->nodes) 325*4882a593Smuzhiyun goto fail2; 326*4882a593Smuzhiyun ptr = vblk[i].dynamic; 327*4882a593Smuzhiyun@@ -543,8 +543,8 @@ make_vg (grub_disk_t disk, 328*4882a593Smuzhiyun { 329*4882a593Smuzhiyun comp->segment_alloc = 8; 330*4882a593Smuzhiyun comp->segment_count = 0; 331*4882a593Smuzhiyun- comp->segments = grub_malloc (sizeof (*comp->segments) 332*4882a593Smuzhiyun- * comp->segment_alloc); 333*4882a593Smuzhiyun+ comp->segments = grub_calloc (comp->segment_alloc, 334*4882a593Smuzhiyun+ sizeof (*comp->segments)); 335*4882a593Smuzhiyun if (!comp->segments) 336*4882a593Smuzhiyun goto fail2; 337*4882a593Smuzhiyun } 338*4882a593Smuzhiyun@@ -590,8 +590,8 @@ make_vg (grub_disk_t disk, 339*4882a593Smuzhiyun } 340*4882a593Smuzhiyun comp->segments->node_count = read_int (ptr + 1, *ptr); 341*4882a593Smuzhiyun comp->segments->node_alloc = comp->segments->node_count; 342*4882a593Smuzhiyun- comp->segments->nodes = grub_zalloc (sizeof (*comp->segments->nodes) 343*4882a593Smuzhiyun- * comp->segments->node_alloc); 344*4882a593Smuzhiyun+ comp->segments->nodes = grub_calloc (comp->segments->node_alloc, 345*4882a593Smuzhiyun+ sizeof (*comp->segments->nodes)); 346*4882a593Smuzhiyun if (!lv->segments->nodes) 347*4882a593Smuzhiyun goto fail2; 348*4882a593Smuzhiyun } 349*4882a593Smuzhiyun@@ -1017,7 +1017,7 @@ grub_util_ldm_embed (struct grub_disk *disk, unsigned int *nsectors, 350*4882a593Smuzhiyun *nsectors = lv->size; 351*4882a593Smuzhiyun if (*nsectors > max_nsectors) 352*4882a593Smuzhiyun *nsectors = max_nsectors; 353*4882a593Smuzhiyun- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); 354*4882a593Smuzhiyun+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); 355*4882a593Smuzhiyun if (!*sectors) 356*4882a593Smuzhiyun return grub_errno; 357*4882a593Smuzhiyun for (i = 0; i < *nsectors; i++) 358*4882a593Smuzhiyundiff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c 359*4882a593Smuzhiyunindex 86c50c612..18b3a8bb1 100644 360*4882a593Smuzhiyun--- a/grub-core/disk/luks.c 361*4882a593Smuzhiyun+++ b/grub-core/disk/luks.c 362*4882a593Smuzhiyun@@ -336,7 +336,7 @@ luks_recover_key (grub_disk_t source, 363*4882a593Smuzhiyun && grub_be_to_cpu32 (header.keyblock[i].stripes) > max_stripes) 364*4882a593Smuzhiyun max_stripes = grub_be_to_cpu32 (header.keyblock[i].stripes); 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun- split_key = grub_malloc (keysize * max_stripes); 367*4882a593Smuzhiyun+ split_key = grub_calloc (keysize, max_stripes); 368*4882a593Smuzhiyun if (!split_key) 369*4882a593Smuzhiyun return grub_errno; 370*4882a593Smuzhiyun 371*4882a593Smuzhiyundiff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c 372*4882a593Smuzhiyunindex 7b265c780..d1df640b3 100644 373*4882a593Smuzhiyun--- a/grub-core/disk/lvm.c 374*4882a593Smuzhiyun+++ b/grub-core/disk/lvm.c 375*4882a593Smuzhiyun@@ -173,7 +173,7 @@ grub_lvm_detect (grub_disk_t disk, 376*4882a593Smuzhiyun first one. */ 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun /* Allocate buffer space for the circular worst-case scenario. */ 379*4882a593Smuzhiyun- metadatabuf = grub_malloc (2 * mda_size); 380*4882a593Smuzhiyun+ metadatabuf = grub_calloc (2, mda_size); 381*4882a593Smuzhiyun if (! metadatabuf) 382*4882a593Smuzhiyun goto fail; 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun@@ -426,7 +426,7 @@ grub_lvm_detect (grub_disk_t disk, 385*4882a593Smuzhiyun #endif 386*4882a593Smuzhiyun goto lvs_fail; 387*4882a593Smuzhiyun } 388*4882a593Smuzhiyun- lv->segments = grub_zalloc (sizeof (*seg) * lv->segment_count); 389*4882a593Smuzhiyun+ lv->segments = grub_calloc (lv->segment_count, sizeof (*seg)); 390*4882a593Smuzhiyun seg = lv->segments; 391*4882a593Smuzhiyun 392*4882a593Smuzhiyun for (i = 0; i < lv->segment_count; i++) 393*4882a593Smuzhiyun@@ -483,8 +483,8 @@ grub_lvm_detect (grub_disk_t disk, 394*4882a593Smuzhiyun if (seg->node_count != 1) 395*4882a593Smuzhiyun seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun- seg->nodes = grub_zalloc (sizeof (*stripe) 398*4882a593Smuzhiyun- * seg->node_count); 399*4882a593Smuzhiyun+ seg->nodes = grub_calloc (seg->node_count, 400*4882a593Smuzhiyun+ sizeof (*stripe)); 401*4882a593Smuzhiyun stripe = seg->nodes; 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun p = grub_strstr (p, "stripes = ["); 404*4882a593Smuzhiyundiff --git a/grub-core/disk/xen/xendisk.c b/grub-core/disk/xen/xendisk.c 405*4882a593Smuzhiyunindex 48476cbbf..d6612eebd 100644 406*4882a593Smuzhiyun--- a/grub-core/disk/xen/xendisk.c 407*4882a593Smuzhiyun+++ b/grub-core/disk/xen/xendisk.c 408*4882a593Smuzhiyun@@ -426,7 +426,7 @@ grub_xendisk_init (void) 409*4882a593Smuzhiyun if (!ctr) 410*4882a593Smuzhiyun return; 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun- virtdisks = grub_malloc (ctr * sizeof (virtdisks[0])); 413*4882a593Smuzhiyun+ virtdisks = grub_calloc (ctr, sizeof (virtdisks[0])); 414*4882a593Smuzhiyun if (!virtdisks) 415*4882a593Smuzhiyun return; 416*4882a593Smuzhiyun if (grub_xenstore_dir ("device/vbd", fill, &ctr)) 417*4882a593Smuzhiyundiff --git a/grub-core/efiemu/loadcore.c b/grub-core/efiemu/loadcore.c 418*4882a593Smuzhiyunindex 44085ef81..2b924623f 100644 419*4882a593Smuzhiyun--- a/grub-core/efiemu/loadcore.c 420*4882a593Smuzhiyun+++ b/grub-core/efiemu/loadcore.c 421*4882a593Smuzhiyun@@ -201,7 +201,7 @@ grub_efiemu_count_symbols (const Elf_Ehdr *e) 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun grub_efiemu_nelfsyms = (unsigned) s->sh_size / (unsigned) s->sh_entsize; 424*4882a593Smuzhiyun grub_efiemu_elfsyms = (struct grub_efiemu_elf_sym *) 425*4882a593Smuzhiyun- grub_malloc (sizeof (struct grub_efiemu_elf_sym) * grub_efiemu_nelfsyms); 426*4882a593Smuzhiyun+ grub_calloc (grub_efiemu_nelfsyms, sizeof (struct grub_efiemu_elf_sym)); 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun /* Relocators */ 429*4882a593Smuzhiyun for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff); 430*4882a593Smuzhiyundiff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c 431*4882a593Smuzhiyunindex 52a032f7b..9b8e0d0ad 100644 432*4882a593Smuzhiyun--- a/grub-core/efiemu/mm.c 433*4882a593Smuzhiyun+++ b/grub-core/efiemu/mm.c 434*4882a593Smuzhiyun@@ -554,11 +554,11 @@ grub_efiemu_mmap_sort_and_uniq (void) 435*4882a593Smuzhiyun /* Initialize variables*/ 436*4882a593Smuzhiyun grub_memset (present, 0, sizeof (int) * GRUB_EFI_MAX_MEMORY_TYPE); 437*4882a593Smuzhiyun scanline_events = (struct grub_efiemu_mmap_scan *) 438*4882a593Smuzhiyun- grub_malloc (sizeof (struct grub_efiemu_mmap_scan) * 2 * mmap_num); 439*4882a593Smuzhiyun+ grub_calloc (mmap_num, sizeof (struct grub_efiemu_mmap_scan) * 2); 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun /* Number of chunks can't increase more than by factor of 2 */ 442*4882a593Smuzhiyun result = (grub_efi_memory_descriptor_t *) 443*4882a593Smuzhiyun- grub_malloc (sizeof (grub_efi_memory_descriptor_t) * 2 * mmap_num); 444*4882a593Smuzhiyun+ grub_calloc (mmap_num, sizeof (grub_efi_memory_descriptor_t) * 2); 445*4882a593Smuzhiyun if (!result || !scanline_events) 446*4882a593Smuzhiyun { 447*4882a593Smuzhiyun grub_free (result); 448*4882a593Smuzhiyun@@ -660,7 +660,7 @@ grub_efiemu_mm_do_alloc (void) 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun /* Preallocate mmap */ 451*4882a593Smuzhiyun efiemu_mmap = (grub_efi_memory_descriptor_t *) 452*4882a593Smuzhiyun- grub_malloc (mmap_reserved_size * sizeof (grub_efi_memory_descriptor_t)); 453*4882a593Smuzhiyun+ grub_calloc (mmap_reserved_size, sizeof (grub_efi_memory_descriptor_t)); 454*4882a593Smuzhiyun if (!efiemu_mmap) 455*4882a593Smuzhiyun { 456*4882a593Smuzhiyun grub_efiemu_unload (); 457*4882a593Smuzhiyundiff --git a/grub-core/font/font.c b/grub-core/font/font.c 458*4882a593Smuzhiyunindex 85a292557..8e118b315 100644 459*4882a593Smuzhiyun--- a/grub-core/font/font.c 460*4882a593Smuzhiyun+++ b/grub-core/font/font.c 461*4882a593Smuzhiyun@@ -293,8 +293,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct 462*4882a593Smuzhiyun font->num_chars = sect_length / FONT_CHAR_INDEX_ENTRY_SIZE; 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun /* Allocate the character index array. */ 465*4882a593Smuzhiyun- font->char_index = grub_malloc (font->num_chars 466*4882a593Smuzhiyun- * sizeof (struct char_index_entry)); 467*4882a593Smuzhiyun+ font->char_index = grub_calloc (font->num_chars, sizeof (struct char_index_entry)); 468*4882a593Smuzhiyun if (!font->char_index) 469*4882a593Smuzhiyun return 1; 470*4882a593Smuzhiyun font->bmp_idx = grub_malloc (0x10000 * sizeof (grub_uint16_t)); 471*4882a593Smuzhiyundiff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c 472*4882a593Smuzhiyunindex 6b6a2bc91..220b3712f 100644 473*4882a593Smuzhiyun--- a/grub-core/fs/affs.c 474*4882a593Smuzhiyun+++ b/grub-core/fs/affs.c 475*4882a593Smuzhiyun@@ -301,7 +301,7 @@ grub_affs_read_symlink (grub_fshelp_node_t node) 476*4882a593Smuzhiyun return 0; 477*4882a593Smuzhiyun } 478*4882a593Smuzhiyun latin1[symlink_size] = 0; 479*4882a593Smuzhiyun- utf8 = grub_malloc (symlink_size * GRUB_MAX_UTF8_PER_LATIN1 + 1); 480*4882a593Smuzhiyun+ utf8 = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, symlink_size); 481*4882a593Smuzhiyun if (!utf8) 482*4882a593Smuzhiyun { 483*4882a593Smuzhiyun grub_free (latin1); 484*4882a593Smuzhiyun@@ -422,7 +422,7 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, 485*4882a593Smuzhiyun return 1; 486*4882a593Smuzhiyun } 487*4882a593Smuzhiyun 488*4882a593Smuzhiyun- hashtable = grub_zalloc (data->htsize * sizeof (*hashtable)); 489*4882a593Smuzhiyun+ hashtable = grub_calloc (data->htsize, sizeof (*hashtable)); 490*4882a593Smuzhiyun if (!hashtable) 491*4882a593Smuzhiyun return 1; 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun@@ -628,7 +628,7 @@ grub_affs_label (grub_device_t device, char **label) 494*4882a593Smuzhiyun len = file.namelen; 495*4882a593Smuzhiyun if (len > sizeof (file.name)) 496*4882a593Smuzhiyun len = sizeof (file.name); 497*4882a593Smuzhiyun- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); 498*4882a593Smuzhiyun+ *label = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, len); 499*4882a593Smuzhiyun if (*label) 500*4882a593Smuzhiyun *grub_latin1_to_utf8 ((grub_uint8_t *) *label, file.name, len) = '\0'; 501*4882a593Smuzhiyun } 502*4882a593Smuzhiyundiff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c 503*4882a593Smuzhiyunindex 48bd3d04a..11272efc1 100644 504*4882a593Smuzhiyun--- a/grub-core/fs/btrfs.c 505*4882a593Smuzhiyun+++ b/grub-core/fs/btrfs.c 506*4882a593Smuzhiyun@@ -413,7 +413,7 @@ lower_bound (struct grub_btrfs_data *data, 507*4882a593Smuzhiyun { 508*4882a593Smuzhiyun desc->allocated = 16; 509*4882a593Smuzhiyun desc->depth = 0; 510*4882a593Smuzhiyun- desc->data = grub_malloc (sizeof (desc->data[0]) * desc->allocated); 511*4882a593Smuzhiyun+ desc->data = grub_calloc (desc->allocated, sizeof (desc->data[0])); 512*4882a593Smuzhiyun if (!desc->data) 513*4882a593Smuzhiyun return grub_errno; 514*4882a593Smuzhiyun } 515*4882a593Smuzhiyun@@ -752,7 +752,7 @@ raid56_read_retry (struct grub_btrfs_data *data, 516*4882a593Smuzhiyun grub_err_t ret = GRUB_ERR_OUT_OF_MEMORY; 517*4882a593Smuzhiyun grub_uint64_t i, failed_devices; 518*4882a593Smuzhiyun 519*4882a593Smuzhiyun- buffers = grub_zalloc (sizeof(*buffers) * nstripes); 520*4882a593Smuzhiyun+ buffers = grub_calloc (nstripes, sizeof (*buffers)); 521*4882a593Smuzhiyun if (!buffers) 522*4882a593Smuzhiyun goto cleanup; 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun@@ -2160,7 +2160,7 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), 525*4882a593Smuzhiyun *nsectors = 64 * 2 - 1; 526*4882a593Smuzhiyun if (*nsectors > max_nsectors) 527*4882a593Smuzhiyun *nsectors = max_nsectors; 528*4882a593Smuzhiyun- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); 529*4882a593Smuzhiyun+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); 530*4882a593Smuzhiyun if (!*sectors) 531*4882a593Smuzhiyun return grub_errno; 532*4882a593Smuzhiyun for (i = 0; i < *nsectors; i++) 533*4882a593Smuzhiyundiff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c 534*4882a593Smuzhiyunindex ac0a40990..3fe842b4d 100644 535*4882a593Smuzhiyun--- a/grub-core/fs/hfs.c 536*4882a593Smuzhiyun+++ b/grub-core/fs/hfs.c 537*4882a593Smuzhiyun@@ -1360,7 +1360,7 @@ grub_hfs_label (grub_device_t device, char **label) 538*4882a593Smuzhiyun grub_size_t len = data->sblock.volname[0]; 539*4882a593Smuzhiyun if (len > sizeof (data->sblock.volname) - 1) 540*4882a593Smuzhiyun len = sizeof (data->sblock.volname) - 1; 541*4882a593Smuzhiyun- *label = grub_malloc (len * MAX_UTF8_PER_MAC_ROMAN + 1); 542*4882a593Smuzhiyun+ *label = grub_calloc (MAX_UTF8_PER_MAC_ROMAN + 1, len); 543*4882a593Smuzhiyun if (*label) 544*4882a593Smuzhiyun macroman_to_utf8 (*label, data->sblock.volname + 1, 545*4882a593Smuzhiyun len + 1, 0); 546*4882a593Smuzhiyundiff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c 547*4882a593Smuzhiyunindex 54786bb1c..dae43becc 100644 548*4882a593Smuzhiyun--- a/grub-core/fs/hfsplus.c 549*4882a593Smuzhiyun+++ b/grub-core/fs/hfsplus.c 550*4882a593Smuzhiyun@@ -720,7 +720,7 @@ list_nodes (void *record, void *hook_arg) 551*4882a593Smuzhiyun if (! filename) 552*4882a593Smuzhiyun return 0; 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun- keyname = grub_malloc (grub_be_to_cpu16 (catkey->namelen) * sizeof (*keyname)); 555*4882a593Smuzhiyun+ keyname = grub_calloc (grub_be_to_cpu16 (catkey->namelen), sizeof (*keyname)); 556*4882a593Smuzhiyun if (!keyname) 557*4882a593Smuzhiyun { 558*4882a593Smuzhiyun grub_free (filename); 559*4882a593Smuzhiyun@@ -1007,7 +1007,7 @@ grub_hfsplus_label (grub_device_t device, char **label) 560*4882a593Smuzhiyun grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); 561*4882a593Smuzhiyun 562*4882a593Smuzhiyun label_len = grub_be_to_cpu16 (catkey->namelen); 563*4882a593Smuzhiyun- label_name = grub_malloc (label_len * sizeof (*label_name)); 564*4882a593Smuzhiyun+ label_name = grub_calloc (label_len, sizeof (*label_name)); 565*4882a593Smuzhiyun if (!label_name) 566*4882a593Smuzhiyun { 567*4882a593Smuzhiyun grub_free (node); 568*4882a593Smuzhiyun@@ -1029,7 +1029,7 @@ grub_hfsplus_label (grub_device_t device, char **label) 569*4882a593Smuzhiyun } 570*4882a593Smuzhiyun } 571*4882a593Smuzhiyun 572*4882a593Smuzhiyun- *label = grub_malloc (label_len * GRUB_MAX_UTF8_PER_UTF16 + 1); 573*4882a593Smuzhiyun+ *label = grub_calloc (label_len, GRUB_MAX_UTF8_PER_UTF16 + 1); 574*4882a593Smuzhiyun if (! *label) 575*4882a593Smuzhiyun { 576*4882a593Smuzhiyun grub_free (label_name); 577*4882a593Smuzhiyundiff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c 578*4882a593Smuzhiyunindex 49c0c632b..4f1b52a55 100644 579*4882a593Smuzhiyun--- a/grub-core/fs/iso9660.c 580*4882a593Smuzhiyun+++ b/grub-core/fs/iso9660.c 581*4882a593Smuzhiyun@@ -331,7 +331,7 @@ grub_iso9660_convert_string (grub_uint8_t *us, int len) 582*4882a593Smuzhiyun int i; 583*4882a593Smuzhiyun grub_uint16_t t[MAX_NAMELEN / 2 + 1]; 584*4882a593Smuzhiyun 585*4882a593Smuzhiyun- p = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); 586*4882a593Smuzhiyun+ p = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); 587*4882a593Smuzhiyun if (! p) 588*4882a593Smuzhiyun return NULL; 589*4882a593Smuzhiyun 590*4882a593Smuzhiyundiff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c 591*4882a593Smuzhiyunindex fc4e1f678..2f34f76da 100644 592*4882a593Smuzhiyun--- a/grub-core/fs/ntfs.c 593*4882a593Smuzhiyun+++ b/grub-core/fs/ntfs.c 594*4882a593Smuzhiyun@@ -556,8 +556,8 @@ get_utf8 (grub_uint8_t *in, grub_size_t len) 595*4882a593Smuzhiyun grub_uint16_t *tmp; 596*4882a593Smuzhiyun grub_size_t i; 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun- buf = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); 599*4882a593Smuzhiyun- tmp = grub_malloc (len * sizeof (tmp[0])); 600*4882a593Smuzhiyun+ buf = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); 601*4882a593Smuzhiyun+ tmp = grub_calloc (len, sizeof (tmp[0])); 602*4882a593Smuzhiyun if (!buf || !tmp) 603*4882a593Smuzhiyun { 604*4882a593Smuzhiyun grub_free (buf); 605*4882a593Smuzhiyundiff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c 606*4882a593Smuzhiyunindex 50c1fe72f..90f7fb379 100644 607*4882a593Smuzhiyun--- a/grub-core/fs/sfs.c 608*4882a593Smuzhiyun+++ b/grub-core/fs/sfs.c 609*4882a593Smuzhiyun@@ -266,7 +266,7 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) 610*4882a593Smuzhiyun node->next_extent = node->block; 611*4882a593Smuzhiyun node->cache_size = 0; 612*4882a593Smuzhiyun 613*4882a593Smuzhiyun- node->cache = grub_malloc (sizeof (node->cache[0]) * cache_size); 614*4882a593Smuzhiyun+ node->cache = grub_calloc (cache_size, sizeof (node->cache[0])); 615*4882a593Smuzhiyun if (!node->cache) 616*4882a593Smuzhiyun { 617*4882a593Smuzhiyun grub_errno = 0; 618*4882a593Smuzhiyundiff --git a/grub-core/fs/tar.c b/grub-core/fs/tar.c 619*4882a593Smuzhiyunindex 7d63e0c99..c551ed6b5 100644 620*4882a593Smuzhiyun--- a/grub-core/fs/tar.c 621*4882a593Smuzhiyun+++ b/grub-core/fs/tar.c 622*4882a593Smuzhiyun@@ -120,7 +120,7 @@ grub_cpio_find_file (struct grub_archelp_data *data, char **name, 623*4882a593Smuzhiyun if (data->linkname_alloc < linksize + 1) 624*4882a593Smuzhiyun { 625*4882a593Smuzhiyun char *n; 626*4882a593Smuzhiyun- n = grub_malloc (2 * (linksize + 1)); 627*4882a593Smuzhiyun+ n = grub_calloc (2, linksize + 1); 628*4882a593Smuzhiyun if (!n) 629*4882a593Smuzhiyun return grub_errno; 630*4882a593Smuzhiyun grub_free (data->linkname); 631*4882a593Smuzhiyundiff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c 632*4882a593Smuzhiyunindex dc8b6e2d1..a83761674 100644 633*4882a593Smuzhiyun--- a/grub-core/fs/udf.c 634*4882a593Smuzhiyun+++ b/grub-core/fs/udf.c 635*4882a593Smuzhiyun@@ -873,7 +873,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) 636*4882a593Smuzhiyun { 637*4882a593Smuzhiyun unsigned i; 638*4882a593Smuzhiyun utf16len = sz - 1; 639*4882a593Smuzhiyun- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); 640*4882a593Smuzhiyun+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); 641*4882a593Smuzhiyun if (!utf16) 642*4882a593Smuzhiyun return NULL; 643*4882a593Smuzhiyun for (i = 0; i < utf16len; i++) 644*4882a593Smuzhiyun@@ -883,7 +883,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) 645*4882a593Smuzhiyun { 646*4882a593Smuzhiyun unsigned i; 647*4882a593Smuzhiyun utf16len = (sz - 1) / 2; 648*4882a593Smuzhiyun- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); 649*4882a593Smuzhiyun+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); 650*4882a593Smuzhiyun if (!utf16) 651*4882a593Smuzhiyun return NULL; 652*4882a593Smuzhiyun for (i = 0; i < utf16len; i++) 653*4882a593Smuzhiyundiff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c 654*4882a593Smuzhiyunindex 2f72e42bf..381dde556 100644 655*4882a593Smuzhiyun--- a/grub-core/fs/zfs/zfs.c 656*4882a593Smuzhiyun+++ b/grub-core/fs/zfs/zfs.c 657*4882a593Smuzhiyun@@ -3325,7 +3325,7 @@ dnode_get_fullpath (const char *fullpath, struct subvolume *subvol, 658*4882a593Smuzhiyun } 659*4882a593Smuzhiyun subvol->nkeys = 0; 660*4882a593Smuzhiyun zap_iterate (&keychain_dn, 8, count_zap_keys, &ctx, data); 661*4882a593Smuzhiyun- subvol->keyring = grub_zalloc (subvol->nkeys * sizeof (subvol->keyring[0])); 662*4882a593Smuzhiyun+ subvol->keyring = grub_calloc (subvol->nkeys, sizeof (subvol->keyring[0])); 663*4882a593Smuzhiyun if (!subvol->keyring) 664*4882a593Smuzhiyun { 665*4882a593Smuzhiyun grub_free (fsname); 666*4882a593Smuzhiyun@@ -4336,7 +4336,7 @@ grub_zfs_embed (grub_device_t device __attribute__ ((unused)), 667*4882a593Smuzhiyun *nsectors = (VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS); 668*4882a593Smuzhiyun if (*nsectors > max_nsectors) 669*4882a593Smuzhiyun *nsectors = max_nsectors; 670*4882a593Smuzhiyun- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); 671*4882a593Smuzhiyun+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); 672*4882a593Smuzhiyun if (!*sectors) 673*4882a593Smuzhiyun return grub_errno; 674*4882a593Smuzhiyun for (i = 0; i < *nsectors; i++) 675*4882a593Smuzhiyundiff --git a/grub-core/gfxmenu/gui_string_util.c b/grub-core/gfxmenu/gui_string_util.c 676*4882a593Smuzhiyunindex a9a415e31..ba1e1eab3 100644 677*4882a593Smuzhiyun--- a/grub-core/gfxmenu/gui_string_util.c 678*4882a593Smuzhiyun+++ b/grub-core/gfxmenu/gui_string_util.c 679*4882a593Smuzhiyun@@ -55,7 +55,7 @@ canonicalize_path (const char *path) 680*4882a593Smuzhiyun if (*p == '/') 681*4882a593Smuzhiyun components++; 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun- char **path_array = grub_malloc (components * sizeof (*path_array)); 684*4882a593Smuzhiyun+ char **path_array = grub_calloc (components, sizeof (*path_array)); 685*4882a593Smuzhiyun if (! path_array) 686*4882a593Smuzhiyun return 0; 687*4882a593Smuzhiyun 688*4882a593Smuzhiyundiff --git a/grub-core/gfxmenu/widget-box.c b/grub-core/gfxmenu/widget-box.c 689*4882a593Smuzhiyunindex b60602889..470597ded 100644 690*4882a593Smuzhiyun--- a/grub-core/gfxmenu/widget-box.c 691*4882a593Smuzhiyun+++ b/grub-core/gfxmenu/widget-box.c 692*4882a593Smuzhiyun@@ -303,10 +303,10 @@ grub_gfxmenu_create_box (const char *pixmaps_prefix, 693*4882a593Smuzhiyun box->content_height = 0; 694*4882a593Smuzhiyun box->raw_pixmaps = 695*4882a593Smuzhiyun (struct grub_video_bitmap **) 696*4882a593Smuzhiyun- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); 697*4882a593Smuzhiyun+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); 698*4882a593Smuzhiyun box->scaled_pixmaps = 699*4882a593Smuzhiyun (struct grub_video_bitmap **) 700*4882a593Smuzhiyun- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); 701*4882a593Smuzhiyun+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); 702*4882a593Smuzhiyun 703*4882a593Smuzhiyun /* Initialize all pixmap pointers to NULL so that proper destruction can 704*4882a593Smuzhiyun be performed if an error is encountered partway through construction. */ 705*4882a593Smuzhiyundiff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c 706*4882a593Smuzhiyunindex 6208a9763..43d98a7bd 100644 707*4882a593Smuzhiyun--- a/grub-core/io/gzio.c 708*4882a593Smuzhiyun+++ b/grub-core/io/gzio.c 709*4882a593Smuzhiyun@@ -554,7 +554,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ 710*4882a593Smuzhiyun z = 1 << j; /* table entries for j-bit table */ 711*4882a593Smuzhiyun 712*4882a593Smuzhiyun /* allocate and link in new table */ 713*4882a593Smuzhiyun- q = (struct huft *) grub_zalloc ((z + 1) * sizeof (struct huft)); 714*4882a593Smuzhiyun+ q = (struct huft *) grub_calloc (z + 1, sizeof (struct huft)); 715*4882a593Smuzhiyun if (! q) 716*4882a593Smuzhiyun { 717*4882a593Smuzhiyun if (h) 718*4882a593Smuzhiyundiff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c 719*4882a593Smuzhiyunindex 6e1ceb905..dc31caa21 100644 720*4882a593Smuzhiyun--- a/grub-core/kern/efi/efi.c 721*4882a593Smuzhiyun+++ b/grub-core/kern/efi/efi.c 722*4882a593Smuzhiyun@@ -202,7 +202,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, 723*4882a593Smuzhiyun 724*4882a593Smuzhiyun len = grub_strlen (var); 725*4882a593Smuzhiyun len16 = len * GRUB_MAX_UTF16_PER_UTF8; 726*4882a593Smuzhiyun- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); 727*4882a593Smuzhiyun+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); 728*4882a593Smuzhiyun if (!var16) 729*4882a593Smuzhiyun return grub_errno; 730*4882a593Smuzhiyun len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); 731*4882a593Smuzhiyun@@ -237,7 +237,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, 732*4882a593Smuzhiyun 733*4882a593Smuzhiyun len = grub_strlen (var); 734*4882a593Smuzhiyun len16 = len * GRUB_MAX_UTF16_PER_UTF8; 735*4882a593Smuzhiyun- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); 736*4882a593Smuzhiyun+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); 737*4882a593Smuzhiyun if (!var16) 738*4882a593Smuzhiyun return NULL; 739*4882a593Smuzhiyun len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); 740*4882a593Smuzhiyun@@ -383,7 +383,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) 741*4882a593Smuzhiyun while (len > 0 && fp->path_name[len - 1] == 0) 742*4882a593Smuzhiyun len--; 743*4882a593Smuzhiyun 744*4882a593Smuzhiyun- dup_name = grub_malloc (len * sizeof (*dup_name)); 745*4882a593Smuzhiyun+ dup_name = grub_calloc (len, sizeof (*dup_name)); 746*4882a593Smuzhiyun if (!dup_name) 747*4882a593Smuzhiyun { 748*4882a593Smuzhiyun grub_free (name); 749*4882a593Smuzhiyundiff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c 750*4882a593Smuzhiyunindex e9ec680cd..d975265b2 100644 751*4882a593Smuzhiyun--- a/grub-core/kern/emu/hostdisk.c 752*4882a593Smuzhiyun+++ b/grub-core/kern/emu/hostdisk.c 753*4882a593Smuzhiyun@@ -615,7 +615,7 @@ static char * 754*4882a593Smuzhiyun grub_util_path_concat_real (size_t n, int ext, va_list ap) 755*4882a593Smuzhiyun { 756*4882a593Smuzhiyun size_t totlen = 0; 757*4882a593Smuzhiyun- char **l = xmalloc ((n + ext) * sizeof (l[0])); 758*4882a593Smuzhiyun+ char **l = xcalloc (n + ext, sizeof (l[0])); 759*4882a593Smuzhiyun char *r, *p, *pi; 760*4882a593Smuzhiyun size_t i; 761*4882a593Smuzhiyun int first = 1; 762*4882a593Smuzhiyundiff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c 763*4882a593Smuzhiyunindex 2b85f4950..f90be6566 100644 764*4882a593Smuzhiyun--- a/grub-core/kern/fs.c 765*4882a593Smuzhiyun+++ b/grub-core/kern/fs.c 766*4882a593Smuzhiyun@@ -151,7 +151,7 @@ grub_fs_blocklist_open (grub_file_t file, const char *name) 767*4882a593Smuzhiyun while (p); 768*4882a593Smuzhiyun 769*4882a593Smuzhiyun /* Allocate a block list. */ 770*4882a593Smuzhiyun- blocks = grub_zalloc (sizeof (struct grub_fs_block) * (num + 1)); 771*4882a593Smuzhiyun+ blocks = grub_calloc (num + 1, sizeof (struct grub_fs_block)); 772*4882a593Smuzhiyun if (! blocks) 773*4882a593Smuzhiyun return 0; 774*4882a593Smuzhiyun 775*4882a593Smuzhiyundiff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c 776*4882a593Smuzhiyunindex 3b633d51f..a7abd367a 100644 777*4882a593Smuzhiyun--- a/grub-core/kern/misc.c 778*4882a593Smuzhiyun+++ b/grub-core/kern/misc.c 779*4882a593Smuzhiyun@@ -690,7 +690,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, 780*4882a593Smuzhiyun args->ptr = args->prealloc; 781*4882a593Smuzhiyun else 782*4882a593Smuzhiyun { 783*4882a593Smuzhiyun- args->ptr = grub_malloc (args->count * sizeof (args->ptr[0])); 784*4882a593Smuzhiyun+ args->ptr = grub_calloc (args->count, sizeof (args->ptr[0])); 785*4882a593Smuzhiyun if (!args->ptr) 786*4882a593Smuzhiyun { 787*4882a593Smuzhiyun grub_errno = GRUB_ERR_NONE; 788*4882a593Smuzhiyundiff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c 789*4882a593Smuzhiyunindex 78175aac2..619db3122 100644 790*4882a593Smuzhiyun--- a/grub-core/kern/parser.c 791*4882a593Smuzhiyun+++ b/grub-core/kern/parser.c 792*4882a593Smuzhiyun@@ -213,7 +213,7 @@ grub_parser_split_cmdline (const char *cmdline, 793*4882a593Smuzhiyun return grub_errno; 794*4882a593Smuzhiyun grub_memcpy (args, buffer, bp - buffer); 795*4882a593Smuzhiyun 796*4882a593Smuzhiyun- *argv = grub_malloc (sizeof (char *) * (*argc + 1)); 797*4882a593Smuzhiyun+ *argv = grub_calloc (*argc + 1, sizeof (char *)); 798*4882a593Smuzhiyun if (!*argv) 799*4882a593Smuzhiyun { 800*4882a593Smuzhiyun grub_free (args); 801*4882a593Smuzhiyundiff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c 802*4882a593Smuzhiyunindex be4816fe6..aac8f9ae1 100644 803*4882a593Smuzhiyun--- a/grub-core/kern/uboot/uboot.c 804*4882a593Smuzhiyun+++ b/grub-core/kern/uboot/uboot.c 805*4882a593Smuzhiyun@@ -133,7 +133,7 @@ grub_uboot_dev_enum (void) 806*4882a593Smuzhiyun return num_devices; 807*4882a593Smuzhiyun 808*4882a593Smuzhiyun max_devices = 2; 809*4882a593Smuzhiyun- enum_devices = grub_malloc (sizeof(struct device_info) * max_devices); 810*4882a593Smuzhiyun+ enum_devices = grub_calloc (max_devices, sizeof(struct device_info)); 811*4882a593Smuzhiyun if (!enum_devices) 812*4882a593Smuzhiyun return 0; 813*4882a593Smuzhiyun 814*4882a593Smuzhiyundiff --git a/grub-core/lib/libgcrypt/cipher/ac.c b/grub-core/lib/libgcrypt/cipher/ac.c 815*4882a593Smuzhiyunindex f5e946a2d..63f6fcd11 100644 816*4882a593Smuzhiyun--- a/grub-core/lib/libgcrypt/cipher/ac.c 817*4882a593Smuzhiyun+++ b/grub-core/lib/libgcrypt/cipher/ac.c 818*4882a593Smuzhiyun@@ -185,7 +185,7 @@ ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, 819*4882a593Smuzhiyun gcry_mpi_t mpi; 820*4882a593Smuzhiyun char *label; 821*4882a593Smuzhiyun 822*4882a593Smuzhiyun- data_mpis_new = gcry_malloc (sizeof (*data_mpis_new) * data_mpis_n); 823*4882a593Smuzhiyun+ data_mpis_new = gcry_calloc (data_mpis_n, sizeof (*data_mpis_new)); 824*4882a593Smuzhiyun if (! data_mpis_new) 825*4882a593Smuzhiyun { 826*4882a593Smuzhiyun err = gcry_error_from_errno (errno); 827*4882a593Smuzhiyun@@ -572,7 +572,7 @@ _gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, 828*4882a593Smuzhiyun } 829*4882a593Smuzhiyun 830*4882a593Smuzhiyun /* Add MPI list. */ 831*4882a593Smuzhiyun- arg_list = gcry_malloc (sizeof (*arg_list) * (data_n + 1)); 832*4882a593Smuzhiyun+ arg_list = gcry_calloc (data_n + 1, sizeof (*arg_list)); 833*4882a593Smuzhiyun if (! arg_list) 834*4882a593Smuzhiyun { 835*4882a593Smuzhiyun err = gcry_error_from_errno (errno); 836*4882a593Smuzhiyun@@ -1283,7 +1283,7 @@ ac_data_construct (const char *identifier, int include_flags, 837*4882a593Smuzhiyun /* We build a list of arguments to pass to 838*4882a593Smuzhiyun gcry_sexp_build_array(). */ 839*4882a593Smuzhiyun data_length = _gcry_ac_data_length (data); 840*4882a593Smuzhiyun- arg_list = gcry_malloc (sizeof (*arg_list) * (data_length * 2)); 841*4882a593Smuzhiyun+ arg_list = gcry_calloc (data_length, sizeof (*arg_list) * 2); 842*4882a593Smuzhiyun if (! arg_list) 843*4882a593Smuzhiyun { 844*4882a593Smuzhiyun err = gcry_error_from_errno (errno); 845*4882a593Smuzhiyun@@ -1593,7 +1593,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits, 846*4882a593Smuzhiyun arg_list_n += 2; 847*4882a593Smuzhiyun 848*4882a593Smuzhiyun /* Allocate list. */ 849*4882a593Smuzhiyun- arg_list = gcry_malloc (sizeof (*arg_list) * arg_list_n); 850*4882a593Smuzhiyun+ arg_list = gcry_calloc (arg_list_n, sizeof (*arg_list)); 851*4882a593Smuzhiyun if (! arg_list) 852*4882a593Smuzhiyun { 853*4882a593Smuzhiyun err = gcry_error_from_errno (errno); 854*4882a593Smuzhiyundiff --git a/grub-core/lib/libgcrypt/cipher/primegen.c b/grub-core/lib/libgcrypt/cipher/primegen.c 855*4882a593Smuzhiyunindex 2788e349f..b12e79b19 100644 856*4882a593Smuzhiyun--- a/grub-core/lib/libgcrypt/cipher/primegen.c 857*4882a593Smuzhiyun+++ b/grub-core/lib/libgcrypt/cipher/primegen.c 858*4882a593Smuzhiyun@@ -383,7 +383,7 @@ prime_generate_internal (int need_q_factor, 859*4882a593Smuzhiyun } 860*4882a593Smuzhiyun 861*4882a593Smuzhiyun /* Allocate an array to track pool usage. */ 862*4882a593Smuzhiyun- pool_in_use = gcry_malloc (n * sizeof *pool_in_use); 863*4882a593Smuzhiyun+ pool_in_use = gcry_calloc (n, sizeof *pool_in_use); 864*4882a593Smuzhiyun if (!pool_in_use) 865*4882a593Smuzhiyun { 866*4882a593Smuzhiyun err = gpg_err_code_from_errno (errno); 867*4882a593Smuzhiyun@@ -765,7 +765,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel, 868*4882a593Smuzhiyun if (nbits < 16) 869*4882a593Smuzhiyun log_fatal ("can't generate a prime with less than %d bits\n", 16); 870*4882a593Smuzhiyun 871*4882a593Smuzhiyun- mods = gcry_xmalloc( no_of_small_prime_numbers * sizeof *mods ); 872*4882a593Smuzhiyun+ mods = gcry_xcalloc( no_of_small_prime_numbers, sizeof *mods); 873*4882a593Smuzhiyun /* Make nbits fit into gcry_mpi_t implementation. */ 874*4882a593Smuzhiyun val_2 = mpi_alloc_set_ui( 2 ); 875*4882a593Smuzhiyun val_3 = mpi_alloc_set_ui( 3); 876*4882a593Smuzhiyundiff --git a/grub-core/lib/libgcrypt/cipher/pubkey.c b/grub-core/lib/libgcrypt/cipher/pubkey.c 877*4882a593Smuzhiyunindex 910982141..ca087ad75 100644 878*4882a593Smuzhiyun--- a/grub-core/lib/libgcrypt/cipher/pubkey.c 879*4882a593Smuzhiyun+++ b/grub-core/lib/libgcrypt/cipher/pubkey.c 880*4882a593Smuzhiyun@@ -2941,7 +2941,7 @@ gcry_pk_encrypt (gcry_sexp_t *r_ciph, gcry_sexp_t s_data, gcry_sexp_t s_pkey) 881*4882a593Smuzhiyun * array to a format string, so we have to do it this way :-(. */ 882*4882a593Smuzhiyun /* FIXME: There is now such a format specifier, so we can 883*4882a593Smuzhiyun change the code to be more clear. */ 884*4882a593Smuzhiyun- arg_list = malloc (nelem * sizeof *arg_list); 885*4882a593Smuzhiyun+ arg_list = calloc (nelem, sizeof *arg_list); 886*4882a593Smuzhiyun if (!arg_list) 887*4882a593Smuzhiyun { 888*4882a593Smuzhiyun rc = gpg_err_code_from_syserror (); 889*4882a593Smuzhiyun@@ -3233,7 +3233,7 @@ gcry_pk_sign (gcry_sexp_t *r_sig, gcry_sexp_t s_hash, gcry_sexp_t s_skey) 890*4882a593Smuzhiyun } 891*4882a593Smuzhiyun strcpy (p, "))"); 892*4882a593Smuzhiyun 893*4882a593Smuzhiyun- arg_list = malloc (nelem * sizeof *arg_list); 894*4882a593Smuzhiyun+ arg_list = calloc (nelem, sizeof *arg_list); 895*4882a593Smuzhiyun if (!arg_list) 896*4882a593Smuzhiyun { 897*4882a593Smuzhiyun rc = gpg_err_code_from_syserror (); 898*4882a593Smuzhiyundiff --git a/grub-core/lib/priority_queue.c b/grub-core/lib/priority_queue.c 899*4882a593Smuzhiyunindex 659be0b7f..7d5e7c05a 100644 900*4882a593Smuzhiyun--- a/grub-core/lib/priority_queue.c 901*4882a593Smuzhiyun+++ b/grub-core/lib/priority_queue.c 902*4882a593Smuzhiyun@@ -92,7 +92,7 @@ grub_priority_queue_new (grub_size_t elsize, 903*4882a593Smuzhiyun { 904*4882a593Smuzhiyun struct grub_priority_queue *ret; 905*4882a593Smuzhiyun void *els; 906*4882a593Smuzhiyun- els = grub_malloc (elsize * 8); 907*4882a593Smuzhiyun+ els = grub_calloc (8, elsize); 908*4882a593Smuzhiyun if (!els) 909*4882a593Smuzhiyun return 0; 910*4882a593Smuzhiyun ret = (struct grub_priority_queue *) grub_malloc (sizeof (*ret)); 911*4882a593Smuzhiyundiff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c 912*4882a593Smuzhiyunindex ee9fa7b4f..467305b46 100644 913*4882a593Smuzhiyun--- a/grub-core/lib/reed_solomon.c 914*4882a593Smuzhiyun+++ b/grub-core/lib/reed_solomon.c 915*4882a593Smuzhiyun@@ -20,6 +20,7 @@ 916*4882a593Smuzhiyun #include <stdio.h> 917*4882a593Smuzhiyun #include <string.h> 918*4882a593Smuzhiyun #include <stdlib.h> 919*4882a593Smuzhiyun+#define xcalloc calloc 920*4882a593Smuzhiyun #define xmalloc malloc 921*4882a593Smuzhiyun #define grub_memset memset 922*4882a593Smuzhiyun #define grub_memcpy memcpy 923*4882a593Smuzhiyun@@ -158,11 +159,9 @@ rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) 924*4882a593Smuzhiyun gf_single_t *rs_polynomial; 925*4882a593Smuzhiyun int i, j; 926*4882a593Smuzhiyun gf_single_t *m; 927*4882a593Smuzhiyun- m = xmalloc ((s + rs) * sizeof (gf_single_t)); 928*4882a593Smuzhiyun+ m = xcalloc (s + rs, sizeof (gf_single_t)); 929*4882a593Smuzhiyun grub_memcpy (m, data, s * sizeof (gf_single_t)); 930*4882a593Smuzhiyun- grub_memset (m + s, 0, rs * sizeof (gf_single_t)); 931*4882a593Smuzhiyun- rs_polynomial = xmalloc ((rs + 1) * sizeof (gf_single_t)); 932*4882a593Smuzhiyun- grub_memset (rs_polynomial, 0, (rs + 1) * sizeof (gf_single_t)); 933*4882a593Smuzhiyun+ rs_polynomial = xcalloc (rs + 1, sizeof (gf_single_t)); 934*4882a593Smuzhiyun rs_polynomial[rs] = 1; 935*4882a593Smuzhiyun /* Multiply with X - a^r */ 936*4882a593Smuzhiyun for (j = 0; j < rs; j++) 937*4882a593Smuzhiyundiff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c 938*4882a593Smuzhiyunindex ea3ebc719..5847aac36 100644 939*4882a593Smuzhiyun--- a/grub-core/lib/relocator.c 940*4882a593Smuzhiyun+++ b/grub-core/lib/relocator.c 941*4882a593Smuzhiyun@@ -495,9 +495,9 @@ malloc_in_range (struct grub_relocator *rel, 942*4882a593Smuzhiyun } 943*4882a593Smuzhiyun #endif 944*4882a593Smuzhiyun 945*4882a593Smuzhiyun- eventt = grub_malloc (maxevents * sizeof (events[0])); 946*4882a593Smuzhiyun+ eventt = grub_calloc (maxevents, sizeof (events[0])); 947*4882a593Smuzhiyun counter = grub_malloc ((DIGITSORT_MASK + 2) * sizeof (counter[0])); 948*4882a593Smuzhiyun- events = grub_malloc (maxevents * sizeof (events[0])); 949*4882a593Smuzhiyun+ events = grub_calloc (maxevents, sizeof (events[0])); 950*4882a593Smuzhiyun if (!events || !eventt || !counter) 951*4882a593Smuzhiyun { 952*4882a593Smuzhiyun grub_dprintf ("relocator", "events or counter allocation failed %d\n", 953*4882a593Smuzhiyun@@ -963,7 +963,7 @@ malloc_in_range (struct grub_relocator *rel, 954*4882a593Smuzhiyun #endif 955*4882a593Smuzhiyun unsigned cural = 0; 956*4882a593Smuzhiyun int oom = 0; 957*4882a593Smuzhiyun- res->subchunks = grub_malloc (sizeof (res->subchunks[0]) * nallocs); 958*4882a593Smuzhiyun+ res->subchunks = grub_calloc (nallocs, sizeof (res->subchunks[0])); 959*4882a593Smuzhiyun if (!res->subchunks) 960*4882a593Smuzhiyun oom = 1; 961*4882a593Smuzhiyun res->nsubchunks = nallocs; 962*4882a593Smuzhiyun@@ -1562,8 +1562,8 @@ grub_relocator_prepare_relocs (struct grub_relocator *rel, grub_addr_t addr, 963*4882a593Smuzhiyun count[(chunk->src & 0xff) + 1]++; 964*4882a593Smuzhiyun } 965*4882a593Smuzhiyun } 966*4882a593Smuzhiyun- from = grub_malloc (nchunks * sizeof (sorted[0])); 967*4882a593Smuzhiyun- to = grub_malloc (nchunks * sizeof (sorted[0])); 968*4882a593Smuzhiyun+ from = grub_calloc (nchunks, sizeof (sorted[0])); 969*4882a593Smuzhiyun+ to = grub_calloc (nchunks, sizeof (sorted[0])); 970*4882a593Smuzhiyun if (!from || !to) 971*4882a593Smuzhiyun { 972*4882a593Smuzhiyun grub_free (from); 973*4882a593Smuzhiyundiff --git a/grub-core/lib/zstd/fse_decompress.c b/grub-core/lib/zstd/fse_decompress.c 974*4882a593Smuzhiyunindex 72bbead5b..2227b84bc 100644 975*4882a593Smuzhiyun--- a/grub-core/lib/zstd/fse_decompress.c 976*4882a593Smuzhiyun+++ b/grub-core/lib/zstd/fse_decompress.c 977*4882a593Smuzhiyun@@ -82,7 +82,7 @@ 978*4882a593Smuzhiyun FSE_DTable* FSE_createDTable (unsigned tableLog) 979*4882a593Smuzhiyun { 980*4882a593Smuzhiyun if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; 981*4882a593Smuzhiyun- return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); 982*4882a593Smuzhiyun+ return (FSE_DTable*)calloc( FSE_DTABLE_SIZE_U32(tableLog), sizeof (U32) ); 983*4882a593Smuzhiyun } 984*4882a593Smuzhiyun 985*4882a593Smuzhiyun void FSE_freeDTable (FSE_DTable* dt) 986*4882a593Smuzhiyundiff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c 987*4882a593Smuzhiyunindex 51684914c..d70c17486 100644 988*4882a593Smuzhiyun--- a/grub-core/loader/arm/linux.c 989*4882a593Smuzhiyun+++ b/grub-core/loader/arm/linux.c 990*4882a593Smuzhiyun@@ -78,7 +78,7 @@ linux_prepare_atag (void *target_atag) 991*4882a593Smuzhiyun 992*4882a593Smuzhiyun /* some place for cmdline, initrd and terminator. */ 993*4882a593Smuzhiyun tmp_size = get_atag_size (atag_orig) + 20 + (arg_size) / 4; 994*4882a593Smuzhiyun- tmp_atag = grub_malloc (tmp_size * sizeof (grub_uint32_t)); 995*4882a593Smuzhiyun+ tmp_atag = grub_calloc (tmp_size, sizeof (grub_uint32_t)); 996*4882a593Smuzhiyun if (!tmp_atag) 997*4882a593Smuzhiyun return grub_errno; 998*4882a593Smuzhiyun 999*4882a593Smuzhiyundiff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c 1000*4882a593Smuzhiyunindex cd92ea3f2..daf8c6b54 100644 1001*4882a593Smuzhiyun--- a/grub-core/loader/efi/chainloader.c 1002*4882a593Smuzhiyun+++ b/grub-core/loader/efi/chainloader.c 1003*4882a593Smuzhiyun@@ -116,7 +116,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, 1004*4882a593Smuzhiyun fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; 1005*4882a593Smuzhiyun fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; 1006*4882a593Smuzhiyun 1007*4882a593Smuzhiyun- path_name = grub_malloc (len * GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); 1008*4882a593Smuzhiyun+ path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); 1009*4882a593Smuzhiyun if (!path_name) 1010*4882a593Smuzhiyun return; 1011*4882a593Smuzhiyun 1012*4882a593Smuzhiyundiff --git a/grub-core/loader/i386/bsdXX.c b/grub-core/loader/i386/bsdXX.c 1013*4882a593Smuzhiyunindex af6741d15..a8d8bf7da 100644 1014*4882a593Smuzhiyun--- a/grub-core/loader/i386/bsdXX.c 1015*4882a593Smuzhiyun+++ b/grub-core/loader/i386/bsdXX.c 1016*4882a593Smuzhiyun@@ -48,7 +48,7 @@ read_headers (grub_file_t file, const char *filename, Elf_Ehdr *e, char **shdr) 1017*4882a593Smuzhiyun if (e->e_ident[EI_CLASS] != SUFFIX (ELFCLASS)) 1018*4882a593Smuzhiyun return grub_error (GRUB_ERR_BAD_OS, N_("invalid arch-dependent ELF magic")); 1019*4882a593Smuzhiyun 1020*4882a593Smuzhiyun- *shdr = grub_malloc ((grub_uint32_t) e->e_shnum * e->e_shentsize); 1021*4882a593Smuzhiyun+ *shdr = grub_calloc (e->e_shnum, e->e_shentsize); 1022*4882a593Smuzhiyun if (! *shdr) 1023*4882a593Smuzhiyun return grub_errno; 1024*4882a593Smuzhiyun 1025*4882a593Smuzhiyundiff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c 1026*4882a593Smuzhiyunindex e64ed08f5..b7d176b5d 100644 1027*4882a593Smuzhiyun--- a/grub-core/loader/i386/xnu.c 1028*4882a593Smuzhiyun+++ b/grub-core/loader/i386/xnu.c 1029*4882a593Smuzhiyun@@ -295,7 +295,7 @@ grub_xnu_devprop_add_property_utf8 (struct grub_xnu_devprop_device_descriptor *d 1030*4882a593Smuzhiyun return grub_errno; 1031*4882a593Smuzhiyun 1032*4882a593Smuzhiyun len = grub_strlen (name); 1033*4882a593Smuzhiyun- utf16 = grub_malloc (sizeof (grub_uint16_t) * len); 1034*4882a593Smuzhiyun+ utf16 = grub_calloc (len, sizeof (grub_uint16_t)); 1035*4882a593Smuzhiyun if (!utf16) 1036*4882a593Smuzhiyun { 1037*4882a593Smuzhiyun grub_free (utf8); 1038*4882a593Smuzhiyun@@ -331,7 +331,7 @@ grub_xnu_devprop_add_property_utf16 (struct grub_xnu_devprop_device_descriptor * 1039*4882a593Smuzhiyun grub_uint16_t *utf16; 1040*4882a593Smuzhiyun grub_err_t err; 1041*4882a593Smuzhiyun 1042*4882a593Smuzhiyun- utf16 = grub_malloc (sizeof (grub_uint16_t) * namelen); 1043*4882a593Smuzhiyun+ utf16 = grub_calloc (namelen, sizeof (grub_uint16_t)); 1044*4882a593Smuzhiyun if (!utf16) 1045*4882a593Smuzhiyun return grub_errno; 1046*4882a593Smuzhiyun grub_memcpy (utf16, name, sizeof (grub_uint16_t) * namelen); 1047*4882a593Smuzhiyundiff --git a/grub-core/loader/macho.c b/grub-core/loader/macho.c 1048*4882a593Smuzhiyunindex 085f9c689..05710c48e 100644 1049*4882a593Smuzhiyun--- a/grub-core/loader/macho.c 1050*4882a593Smuzhiyun+++ b/grub-core/loader/macho.c 1051*4882a593Smuzhiyun@@ -97,7 +97,7 @@ grub_macho_file (grub_file_t file, const char *filename, int is_64bit) 1052*4882a593Smuzhiyun if (grub_file_seek (macho->file, sizeof (struct grub_macho_fat_header)) 1053*4882a593Smuzhiyun == (grub_off_t) -1) 1054*4882a593Smuzhiyun goto fail; 1055*4882a593Smuzhiyun- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); 1056*4882a593Smuzhiyun+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); 1057*4882a593Smuzhiyun if (!archs) 1058*4882a593Smuzhiyun goto fail; 1059*4882a593Smuzhiyun if (grub_file_read (macho->file, archs, 1060*4882a593Smuzhiyundiff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c 1061*4882a593Smuzhiyunindex 70cd1db51..cc6853692 100644 1062*4882a593Smuzhiyun--- a/grub-core/loader/multiboot_elfxx.c 1063*4882a593Smuzhiyun+++ b/grub-core/loader/multiboot_elfxx.c 1064*4882a593Smuzhiyun@@ -217,7 +217,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) 1065*4882a593Smuzhiyun { 1066*4882a593Smuzhiyun grub_uint8_t *shdr, *shdrptr; 1067*4882a593Smuzhiyun 1068*4882a593Smuzhiyun- shdr = grub_malloc ((grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize); 1069*4882a593Smuzhiyun+ shdr = grub_calloc (ehdr->e_shnum, ehdr->e_shentsize); 1070*4882a593Smuzhiyun if (!shdr) 1071*4882a593Smuzhiyun return grub_errno; 1072*4882a593Smuzhiyun 1073*4882a593Smuzhiyundiff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c 1074*4882a593Smuzhiyunindex 7f74d1d6f..77d7060e1 100644 1075*4882a593Smuzhiyun--- a/grub-core/loader/xnu.c 1076*4882a593Smuzhiyun+++ b/grub-core/loader/xnu.c 1077*4882a593Smuzhiyun@@ -800,7 +800,7 @@ grub_cmd_xnu_mkext (grub_command_t cmd __attribute__ ((unused)), 1078*4882a593Smuzhiyun if (grub_be_to_cpu32 (head.magic) == GRUB_MACHO_FAT_MAGIC) 1079*4882a593Smuzhiyun { 1080*4882a593Smuzhiyun narchs = grub_be_to_cpu32 (head.nfat_arch); 1081*4882a593Smuzhiyun- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); 1082*4882a593Smuzhiyun+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); 1083*4882a593Smuzhiyun if (! archs) 1084*4882a593Smuzhiyun { 1085*4882a593Smuzhiyun grub_file_close (file); 1086*4882a593Smuzhiyundiff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c 1087*4882a593Smuzhiyunindex 6a31cbae3..57b4e9a72 100644 1088*4882a593Smuzhiyun--- a/grub-core/mmap/mmap.c 1089*4882a593Smuzhiyun+++ b/grub-core/mmap/mmap.c 1090*4882a593Smuzhiyun@@ -143,9 +143,9 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) 1091*4882a593Smuzhiyun 1092*4882a593Smuzhiyun /* Initialize variables. */ 1093*4882a593Smuzhiyun ctx.scanline_events = (struct grub_mmap_scan *) 1094*4882a593Smuzhiyun- grub_malloc (sizeof (struct grub_mmap_scan) * 2 * mmap_num); 1095*4882a593Smuzhiyun+ grub_calloc (mmap_num, sizeof (struct grub_mmap_scan) * 2); 1096*4882a593Smuzhiyun 1097*4882a593Smuzhiyun- present = grub_zalloc (sizeof (present[0]) * current_priority); 1098*4882a593Smuzhiyun+ present = grub_calloc (current_priority, sizeof (present[0])); 1099*4882a593Smuzhiyun 1100*4882a593Smuzhiyun if (! ctx.scanline_events || !present) 1101*4882a593Smuzhiyun { 1102*4882a593Smuzhiyundiff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c 1103*4882a593Smuzhiyunindex 04cfbb045..653957200 100644 1104*4882a593Smuzhiyun--- a/grub-core/net/bootp.c 1105*4882a593Smuzhiyun+++ b/grub-core/net/bootp.c 1106*4882a593Smuzhiyun@@ -766,7 +766,7 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), 1107*4882a593Smuzhiyun if (ncards == 0) 1108*4882a593Smuzhiyun return grub_error (GRUB_ERR_NET_NO_CARD, N_("no network card found")); 1109*4882a593Smuzhiyun 1110*4882a593Smuzhiyun- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); 1111*4882a593Smuzhiyun+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); 1112*4882a593Smuzhiyun if (!ifaces) 1113*4882a593Smuzhiyun return grub_errno; 1114*4882a593Smuzhiyun 1115*4882a593Smuzhiyundiff --git a/grub-core/net/dns.c b/grub-core/net/dns.c 1116*4882a593Smuzhiyunindex 5d9afe093..e332d5eb4 100644 1117*4882a593Smuzhiyun--- a/grub-core/net/dns.c 1118*4882a593Smuzhiyun+++ b/grub-core/net/dns.c 1119*4882a593Smuzhiyun@@ -285,8 +285,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), 1120*4882a593Smuzhiyun ptr++; 1121*4882a593Smuzhiyun ptr += 4; 1122*4882a593Smuzhiyun } 1123*4882a593Smuzhiyun- *data->addresses = grub_malloc (sizeof ((*data->addresses)[0]) 1124*4882a593Smuzhiyun- * grub_be_to_cpu16 (head->ancount)); 1125*4882a593Smuzhiyun+ *data->addresses = grub_calloc (grub_be_to_cpu16 (head->ancount), 1126*4882a593Smuzhiyun+ sizeof ((*data->addresses)[0])); 1127*4882a593Smuzhiyun if (!*data->addresses) 1128*4882a593Smuzhiyun { 1129*4882a593Smuzhiyun grub_errno = GRUB_ERR_NONE; 1130*4882a593Smuzhiyun@@ -406,8 +406,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), 1131*4882a593Smuzhiyun dns_cache[h].addresses = 0; 1132*4882a593Smuzhiyun dns_cache[h].name = grub_strdup (data->oname); 1133*4882a593Smuzhiyun dns_cache[h].naddresses = *data->naddresses; 1134*4882a593Smuzhiyun- dns_cache[h].addresses = grub_malloc (*data->naddresses 1135*4882a593Smuzhiyun- * sizeof (dns_cache[h].addresses[0])); 1136*4882a593Smuzhiyun+ dns_cache[h].addresses = grub_calloc (*data->naddresses, 1137*4882a593Smuzhiyun+ sizeof (dns_cache[h].addresses[0])); 1138*4882a593Smuzhiyun dns_cache[h].limit_time = grub_get_time_ms () + 1000 * ttl_all; 1139*4882a593Smuzhiyun if (!dns_cache[h].addresses || !dns_cache[h].name) 1140*4882a593Smuzhiyun { 1141*4882a593Smuzhiyun@@ -479,7 +479,7 @@ grub_net_dns_lookup (const char *name, 1142*4882a593Smuzhiyun } 1143*4882a593Smuzhiyun } 1144*4882a593Smuzhiyun 1145*4882a593Smuzhiyun- sockets = grub_malloc (sizeof (sockets[0]) * n_servers); 1146*4882a593Smuzhiyun+ sockets = grub_calloc (n_servers, sizeof (sockets[0])); 1147*4882a593Smuzhiyun if (!sockets) 1148*4882a593Smuzhiyun return grub_errno; 1149*4882a593Smuzhiyun 1150*4882a593Smuzhiyundiff --git a/grub-core/net/net.c b/grub-core/net/net.c 1151*4882a593Smuzhiyunindex d5d726a31..38f19dfc9 100644 1152*4882a593Smuzhiyun--- a/grub-core/net/net.c 1153*4882a593Smuzhiyun+++ b/grub-core/net/net.c 1154*4882a593Smuzhiyun@@ -333,8 +333,8 @@ grub_cmd_ipv6_autoconf (struct grub_command *cmd __attribute__ ((unused)), 1155*4882a593Smuzhiyun ncards++; 1156*4882a593Smuzhiyun } 1157*4882a593Smuzhiyun 1158*4882a593Smuzhiyun- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); 1159*4882a593Smuzhiyun- slaacs = grub_zalloc (ncards * sizeof (slaacs[0])); 1160*4882a593Smuzhiyun+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); 1161*4882a593Smuzhiyun+ slaacs = grub_calloc (ncards, sizeof (slaacs[0])); 1162*4882a593Smuzhiyun if (!ifaces || !slaacs) 1163*4882a593Smuzhiyun { 1164*4882a593Smuzhiyun grub_free (ifaces); 1165*4882a593Smuzhiyundiff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c 1166*4882a593Smuzhiyunindex b0ab47d73..d57fb72fa 100644 1167*4882a593Smuzhiyun--- a/grub-core/normal/charset.c 1168*4882a593Smuzhiyun+++ b/grub-core/normal/charset.c 1169*4882a593Smuzhiyun@@ -203,7 +203,7 @@ grub_utf8_to_ucs4_alloc (const char *msg, grub_uint32_t **unicode_msg, 1170*4882a593Smuzhiyun { 1171*4882a593Smuzhiyun grub_size_t msg_len = grub_strlen (msg); 1172*4882a593Smuzhiyun 1173*4882a593Smuzhiyun- *unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); 1174*4882a593Smuzhiyun+ *unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); 1175*4882a593Smuzhiyun 1176*4882a593Smuzhiyun if (!*unicode_msg) 1177*4882a593Smuzhiyun return -1; 1178*4882a593Smuzhiyun@@ -488,7 +488,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, 1179*4882a593Smuzhiyun } 1180*4882a593Smuzhiyun else 1181*4882a593Smuzhiyun { 1182*4882a593Smuzhiyun- n = grub_malloc (sizeof (n[0]) * (out->ncomb + 1)); 1183*4882a593Smuzhiyun+ n = grub_calloc (out->ncomb + 1, sizeof (n[0])); 1184*4882a593Smuzhiyun if (!n) 1185*4882a593Smuzhiyun { 1186*4882a593Smuzhiyun grub_errno = GRUB_ERR_NONE; 1187*4882a593Smuzhiyun@@ -842,7 +842,7 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, 1188*4882a593Smuzhiyun } \ 1189*4882a593Smuzhiyun } 1190*4882a593Smuzhiyun 1191*4882a593Smuzhiyun- visual = grub_malloc (sizeof (visual[0]) * logical_len); 1192*4882a593Smuzhiyun+ visual = grub_calloc (logical_len, sizeof (visual[0])); 1193*4882a593Smuzhiyun if (!visual) 1194*4882a593Smuzhiyun return -1; 1195*4882a593Smuzhiyun 1196*4882a593Smuzhiyun@@ -1165,8 +1165,8 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical, 1197*4882a593Smuzhiyun { 1198*4882a593Smuzhiyun const grub_uint32_t *line_start = logical, *ptr; 1199*4882a593Smuzhiyun struct grub_unicode_glyph *visual_ptr; 1200*4882a593Smuzhiyun- *visual_out = visual_ptr = grub_malloc (3 * sizeof (visual_ptr[0]) 1201*4882a593Smuzhiyun- * (logical_len + 2)); 1202*4882a593Smuzhiyun+ *visual_out = visual_ptr = grub_calloc (logical_len + 2, 1203*4882a593Smuzhiyun+ 3 * sizeof (visual_ptr[0])); 1204*4882a593Smuzhiyun if (!visual_ptr) 1205*4882a593Smuzhiyun return -1; 1206*4882a593Smuzhiyun for (ptr = logical; ptr <= logical + logical_len; ptr++) 1207*4882a593Smuzhiyundiff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c 1208*4882a593Smuzhiyunindex c037d5050..c57242e2e 100644 1209*4882a593Smuzhiyun--- a/grub-core/normal/cmdline.c 1210*4882a593Smuzhiyun+++ b/grub-core/normal/cmdline.c 1211*4882a593Smuzhiyun@@ -41,7 +41,7 @@ grub_err_t 1212*4882a593Smuzhiyun grub_set_history (int newsize) 1213*4882a593Smuzhiyun { 1214*4882a593Smuzhiyun grub_uint32_t **old_hist_lines = hist_lines; 1215*4882a593Smuzhiyun- hist_lines = grub_malloc (sizeof (grub_uint32_t *) * newsize); 1216*4882a593Smuzhiyun+ hist_lines = grub_calloc (newsize, sizeof (grub_uint32_t *)); 1217*4882a593Smuzhiyun 1218*4882a593Smuzhiyun /* Copy the old lines into the new buffer. */ 1219*4882a593Smuzhiyun if (old_hist_lines) 1220*4882a593Smuzhiyun@@ -114,7 +114,7 @@ static void 1221*4882a593Smuzhiyun grub_history_set (int pos, grub_uint32_t *s, grub_size_t len) 1222*4882a593Smuzhiyun { 1223*4882a593Smuzhiyun grub_free (hist_lines[pos]); 1224*4882a593Smuzhiyun- hist_lines[pos] = grub_malloc ((len + 1) * sizeof (grub_uint32_t)); 1225*4882a593Smuzhiyun+ hist_lines[pos] = grub_calloc (len + 1, sizeof (grub_uint32_t)); 1226*4882a593Smuzhiyun if (!hist_lines[pos]) 1227*4882a593Smuzhiyun { 1228*4882a593Smuzhiyun grub_print_error (); 1229*4882a593Smuzhiyun@@ -349,7 +349,7 @@ grub_cmdline_get (const char *prompt_translated) 1230*4882a593Smuzhiyun char *ret; 1231*4882a593Smuzhiyun unsigned nterms; 1232*4882a593Smuzhiyun 1233*4882a593Smuzhiyun- buf = grub_malloc (max_len * sizeof (grub_uint32_t)); 1234*4882a593Smuzhiyun+ buf = grub_calloc (max_len, sizeof (grub_uint32_t)); 1235*4882a593Smuzhiyun if (!buf) 1236*4882a593Smuzhiyun return 0; 1237*4882a593Smuzhiyun 1238*4882a593Smuzhiyun@@ -377,7 +377,7 @@ grub_cmdline_get (const char *prompt_translated) 1239*4882a593Smuzhiyun FOR_ACTIVE_TERM_OUTPUTS(cur) 1240*4882a593Smuzhiyun nterms++; 1241*4882a593Smuzhiyun 1242*4882a593Smuzhiyun- cl_terms = grub_malloc (sizeof (cl_terms[0]) * nterms); 1243*4882a593Smuzhiyun+ cl_terms = grub_calloc (nterms, sizeof (cl_terms[0])); 1244*4882a593Smuzhiyun if (!cl_terms) 1245*4882a593Smuzhiyun { 1246*4882a593Smuzhiyun grub_free (buf); 1247*4882a593Smuzhiyun@@ -385,7 +385,7 @@ grub_cmdline_get (const char *prompt_translated) 1248*4882a593Smuzhiyun } 1249*4882a593Smuzhiyun cl_term_cur = cl_terms; 1250*4882a593Smuzhiyun 1251*4882a593Smuzhiyun- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); 1252*4882a593Smuzhiyun+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); 1253*4882a593Smuzhiyun if (!unicode_msg) 1254*4882a593Smuzhiyun { 1255*4882a593Smuzhiyun grub_free (buf); 1256*4882a593Smuzhiyun@@ -495,7 +495,7 @@ grub_cmdline_get (const char *prompt_translated) 1257*4882a593Smuzhiyun grub_uint32_t *insert; 1258*4882a593Smuzhiyun 1259*4882a593Smuzhiyun insertlen = grub_strlen (insertu8); 1260*4882a593Smuzhiyun- insert = grub_malloc ((insertlen + 1) * sizeof (grub_uint32_t)); 1261*4882a593Smuzhiyun+ insert = grub_calloc (insertlen + 1, sizeof (grub_uint32_t)); 1262*4882a593Smuzhiyun if (!insert) 1263*4882a593Smuzhiyun { 1264*4882a593Smuzhiyun grub_free (insertu8); 1265*4882a593Smuzhiyun@@ -602,7 +602,7 @@ grub_cmdline_get (const char *prompt_translated) 1266*4882a593Smuzhiyun 1267*4882a593Smuzhiyun grub_free (kill_buf); 1268*4882a593Smuzhiyun 1269*4882a593Smuzhiyun- kill_buf = grub_malloc ((n + 1) * sizeof(grub_uint32_t)); 1270*4882a593Smuzhiyun+ kill_buf = grub_calloc (n + 1, sizeof (grub_uint32_t)); 1271*4882a593Smuzhiyun if (grub_errno) 1272*4882a593Smuzhiyun { 1273*4882a593Smuzhiyun grub_print_error (); 1274*4882a593Smuzhiyundiff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c 1275*4882a593Smuzhiyunindex cdf3590a3..1993995be 100644 1276*4882a593Smuzhiyun--- a/grub-core/normal/menu_entry.c 1277*4882a593Smuzhiyun+++ b/grub-core/normal/menu_entry.c 1278*4882a593Smuzhiyun@@ -95,8 +95,8 @@ init_line (struct screen *screen, struct line *linep) 1279*4882a593Smuzhiyun { 1280*4882a593Smuzhiyun linep->len = 0; 1281*4882a593Smuzhiyun linep->max_len = 80; 1282*4882a593Smuzhiyun- linep->buf = grub_malloc ((linep->max_len + 1) * sizeof (linep->buf[0])); 1283*4882a593Smuzhiyun- linep->pos = grub_zalloc (screen->nterms * sizeof (linep->pos[0])); 1284*4882a593Smuzhiyun+ linep->buf = grub_calloc (linep->max_len + 1, sizeof (linep->buf[0])); 1285*4882a593Smuzhiyun+ linep->pos = grub_calloc (screen->nterms, sizeof (linep->pos[0])); 1286*4882a593Smuzhiyun if (! linep->buf || !linep->pos) 1287*4882a593Smuzhiyun { 1288*4882a593Smuzhiyun grub_free (linep->buf); 1289*4882a593Smuzhiyun@@ -287,7 +287,7 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, 1290*4882a593Smuzhiyun pos = linep->pos + (term_screen - screen->terms); 1291*4882a593Smuzhiyun 1292*4882a593Smuzhiyun if (!*pos) 1293*4882a593Smuzhiyun- *pos = grub_zalloc ((linep->len + 1) * sizeof (**pos)); 1294*4882a593Smuzhiyun+ *pos = grub_calloc (linep->len + 1, sizeof (**pos)); 1295*4882a593Smuzhiyun 1296*4882a593Smuzhiyun if (i == region_start || linep == screen->lines + screen->line 1297*4882a593Smuzhiyun || (i > region_start && mode == ALL_LINES)) 1298*4882a593Smuzhiyun@@ -471,7 +471,7 @@ insert_string (struct screen *screen, const char *s, int update) 1299*4882a593Smuzhiyun 1300*4882a593Smuzhiyun /* Insert the string. */ 1301*4882a593Smuzhiyun current_linep = screen->lines + screen->line; 1302*4882a593Smuzhiyun- unicode_msg = grub_malloc ((p - s) * sizeof (grub_uint32_t)); 1303*4882a593Smuzhiyun+ unicode_msg = grub_calloc (p - s, sizeof (grub_uint32_t)); 1304*4882a593Smuzhiyun 1305*4882a593Smuzhiyun if (!unicode_msg) 1306*4882a593Smuzhiyun return 0; 1307*4882a593Smuzhiyun@@ -1023,7 +1023,7 @@ complete (struct screen *screen, int continuous, int update) 1308*4882a593Smuzhiyun if (completion_buffer.buf) 1309*4882a593Smuzhiyun { 1310*4882a593Smuzhiyun buflen = grub_strlen (completion_buffer.buf); 1311*4882a593Smuzhiyun- ucs4 = grub_malloc (sizeof (grub_uint32_t) * (buflen + 1)); 1312*4882a593Smuzhiyun+ ucs4 = grub_calloc (buflen + 1, sizeof (grub_uint32_t)); 1313*4882a593Smuzhiyun 1314*4882a593Smuzhiyun if (!ucs4) 1315*4882a593Smuzhiyun { 1316*4882a593Smuzhiyun@@ -1268,7 +1268,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) 1317*4882a593Smuzhiyun for (i = 0; i < (unsigned) screen->num_lines; i++) 1318*4882a593Smuzhiyun { 1319*4882a593Smuzhiyun grub_free (screen->lines[i].pos); 1320*4882a593Smuzhiyun- screen->lines[i].pos = grub_zalloc (screen->nterms * sizeof (screen->lines[i].pos[0])); 1321*4882a593Smuzhiyun+ screen->lines[i].pos = grub_calloc (screen->nterms, sizeof (screen->lines[i].pos[0])); 1322*4882a593Smuzhiyun if (! screen->lines[i].pos) 1323*4882a593Smuzhiyun { 1324*4882a593Smuzhiyun grub_print_error (); 1325*4882a593Smuzhiyun@@ -1278,7 +1278,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) 1326*4882a593Smuzhiyun } 1327*4882a593Smuzhiyun } 1328*4882a593Smuzhiyun 1329*4882a593Smuzhiyun- screen->terms = grub_zalloc (screen->nterms * sizeof (screen->terms[0])); 1330*4882a593Smuzhiyun+ screen->terms = grub_calloc (screen->nterms, sizeof (screen->terms[0])); 1331*4882a593Smuzhiyun if (!screen->terms) 1332*4882a593Smuzhiyun { 1333*4882a593Smuzhiyun grub_print_error (); 1334*4882a593Smuzhiyundiff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c 1335*4882a593Smuzhiyunindex e22bb91f6..18240e76c 100644 1336*4882a593Smuzhiyun--- a/grub-core/normal/menu_text.c 1337*4882a593Smuzhiyun+++ b/grub-core/normal/menu_text.c 1338*4882a593Smuzhiyun@@ -78,7 +78,7 @@ grub_print_message_indented_real (const char *msg, int margin_left, 1339*4882a593Smuzhiyun grub_size_t msg_len = grub_strlen (msg) + 2; 1340*4882a593Smuzhiyun int ret = 0; 1341*4882a593Smuzhiyun 1342*4882a593Smuzhiyun- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); 1343*4882a593Smuzhiyun+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); 1344*4882a593Smuzhiyun 1345*4882a593Smuzhiyun if (!unicode_msg) 1346*4882a593Smuzhiyun return 0; 1347*4882a593Smuzhiyun@@ -211,7 +211,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, 1348*4882a593Smuzhiyun 1349*4882a593Smuzhiyun title = entry ? entry->title : ""; 1350*4882a593Smuzhiyun title_len = grub_strlen (title); 1351*4882a593Smuzhiyun- unicode_title = grub_malloc (title_len * sizeof (*unicode_title)); 1352*4882a593Smuzhiyun+ unicode_title = grub_calloc (title_len, sizeof (*unicode_title)); 1353*4882a593Smuzhiyun if (! unicode_title) 1354*4882a593Smuzhiyun /* XXX How to show this error? */ 1355*4882a593Smuzhiyun return; 1356*4882a593Smuzhiyundiff --git a/grub-core/normal/term.c b/grub-core/normal/term.c 1357*4882a593Smuzhiyunindex a1e5c5a0d..cc8c173b6 100644 1358*4882a593Smuzhiyun--- a/grub-core/normal/term.c 1359*4882a593Smuzhiyun+++ b/grub-core/normal/term.c 1360*4882a593Smuzhiyun@@ -264,7 +264,7 @@ grub_term_save_pos (void) 1361*4882a593Smuzhiyun FOR_ACTIVE_TERM_OUTPUTS(cur) 1362*4882a593Smuzhiyun cnt++; 1363*4882a593Smuzhiyun 1364*4882a593Smuzhiyun- ret = grub_malloc (cnt * sizeof (ret[0])); 1365*4882a593Smuzhiyun+ ret = grub_calloc (cnt, sizeof (ret[0])); 1366*4882a593Smuzhiyun if (!ret) 1367*4882a593Smuzhiyun return NULL; 1368*4882a593Smuzhiyun 1369*4882a593Smuzhiyun@@ -1013,7 +1013,7 @@ grub_xnputs (const char *str, grub_size_t msg_len) 1370*4882a593Smuzhiyun 1371*4882a593Smuzhiyun grub_error_push (); 1372*4882a593Smuzhiyun 1373*4882a593Smuzhiyun- unicode_str = grub_malloc (msg_len * sizeof (grub_uint32_t)); 1374*4882a593Smuzhiyun+ unicode_str = grub_calloc (msg_len, sizeof (grub_uint32_t)); 1375*4882a593Smuzhiyun 1376*4882a593Smuzhiyun grub_error_pop (); 1377*4882a593Smuzhiyun 1378*4882a593Smuzhiyundiff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c 1379*4882a593Smuzhiyunindex 90d92d3ad..5b41ad022 100644 1380*4882a593Smuzhiyun--- a/grub-core/osdep/linux/getroot.c 1381*4882a593Smuzhiyun+++ b/grub-core/osdep/linux/getroot.c 1382*4882a593Smuzhiyun@@ -168,7 +168,7 @@ grub_util_raid_getmembers (const char *name, int bootable) 1383*4882a593Smuzhiyun if (ret != 0) 1384*4882a593Smuzhiyun grub_util_error (_("ioctl GET_ARRAY_INFO error: %s"), strerror (errno)); 1385*4882a593Smuzhiyun 1386*4882a593Smuzhiyun- devicelist = xmalloc ((info.nr_disks + 1) * sizeof (char *)); 1387*4882a593Smuzhiyun+ devicelist = xcalloc (info.nr_disks + 1, sizeof (char *)); 1388*4882a593Smuzhiyun 1389*4882a593Smuzhiyun for (i = 0, j = 0; j < info.nr_disks; i++) 1390*4882a593Smuzhiyun { 1391*4882a593Smuzhiyun@@ -241,7 +241,7 @@ grub_find_root_devices_from_btrfs (const char *dir) 1392*4882a593Smuzhiyun return NULL; 1393*4882a593Smuzhiyun } 1394*4882a593Smuzhiyun 1395*4882a593Smuzhiyun- ret = xmalloc ((fsi.num_devices + 1) * sizeof (ret[0])); 1396*4882a593Smuzhiyun+ ret = xcalloc (fsi.num_devices + 1, sizeof (ret[0])); 1397*4882a593Smuzhiyun 1398*4882a593Smuzhiyun for (i = 1; i <= fsi.max_id && j < fsi.num_devices; i++) 1399*4882a593Smuzhiyun { 1400*4882a593Smuzhiyun@@ -396,7 +396,7 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot) 1401*4882a593Smuzhiyun if (relroot) 1402*4882a593Smuzhiyun *relroot = NULL; 1403*4882a593Smuzhiyun 1404*4882a593Smuzhiyun- entries = xmalloc (entry_max * sizeof (*entries)); 1405*4882a593Smuzhiyun+ entries = xcalloc (entry_max, sizeof (*entries)); 1406*4882a593Smuzhiyun 1407*4882a593Smuzhiyun again: 1408*4882a593Smuzhiyun fp = grub_util_fopen ("/proc/self/mountinfo", "r"); 1409*4882a593Smuzhiyundiff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c 1410*4882a593Smuzhiyunindex 65effa9f3..7d6325138 100644 1411*4882a593Smuzhiyun--- a/grub-core/osdep/unix/config.c 1412*4882a593Smuzhiyun+++ b/grub-core/osdep/unix/config.c 1413*4882a593Smuzhiyun@@ -89,7 +89,7 @@ grub_util_load_config (struct grub_util_config *cfg) 1414*4882a593Smuzhiyun argv[0] = "sh"; 1415*4882a593Smuzhiyun argv[1] = "-c"; 1416*4882a593Smuzhiyun 1417*4882a593Smuzhiyun- script = xmalloc (4 * strlen (cfgfile) + 300); 1418*4882a593Smuzhiyun+ script = xcalloc (4, strlen (cfgfile) + 300); 1419*4882a593Smuzhiyun 1420*4882a593Smuzhiyun ptr = script; 1421*4882a593Smuzhiyun memcpy (ptr, ". '", 3); 1422*4882a593Smuzhiyundiff --git a/grub-core/osdep/windows/getroot.c b/grub-core/osdep/windows/getroot.c 1423*4882a593Smuzhiyunindex 661d95461..eada663b2 100644 1424*4882a593Smuzhiyun--- a/grub-core/osdep/windows/getroot.c 1425*4882a593Smuzhiyun+++ b/grub-core/osdep/windows/getroot.c 1426*4882a593Smuzhiyun@@ -59,7 +59,7 @@ grub_get_mount_point (const TCHAR *path) 1427*4882a593Smuzhiyun 1428*4882a593Smuzhiyun for (ptr = path; *ptr; ptr++); 1429*4882a593Smuzhiyun allocsize = (ptr - path + 10) * 2; 1430*4882a593Smuzhiyun- out = xmalloc (allocsize * sizeof (out[0])); 1431*4882a593Smuzhiyun+ out = xcalloc (allocsize, sizeof (out[0])); 1432*4882a593Smuzhiyun 1433*4882a593Smuzhiyun /* When pointing to EFI system partition GetVolumePathName fails 1434*4882a593Smuzhiyun for ESP root and returns abberant information for everything 1435*4882a593Smuzhiyundiff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c 1436*4882a593Smuzhiyunindex 355100789..0be327394 100644 1437*4882a593Smuzhiyun--- a/grub-core/osdep/windows/hostdisk.c 1438*4882a593Smuzhiyun+++ b/grub-core/osdep/windows/hostdisk.c 1439*4882a593Smuzhiyun@@ -111,7 +111,7 @@ grub_util_get_windows_path_real (const char *path) 1440*4882a593Smuzhiyun 1441*4882a593Smuzhiyun while (1) 1442*4882a593Smuzhiyun { 1443*4882a593Smuzhiyun- fpa = xmalloc (alloc * sizeof (fpa[0])); 1444*4882a593Smuzhiyun+ fpa = xcalloc (alloc, sizeof (fpa[0])); 1445*4882a593Smuzhiyun 1446*4882a593Smuzhiyun len = GetFullPathName (tpath, alloc, fpa, NULL); 1447*4882a593Smuzhiyun if (len >= alloc) 1448*4882a593Smuzhiyun@@ -399,7 +399,7 @@ grub_util_fd_opendir (const char *name) 1449*4882a593Smuzhiyun for (l = 0; name_windows[l]; l++); 1450*4882a593Smuzhiyun for (l--; l >= 0 && (name_windows[l] == '\\' || name_windows[l] == '/'); l--); 1451*4882a593Smuzhiyun l++; 1452*4882a593Smuzhiyun- pattern = xmalloc ((l + 3) * sizeof (pattern[0])); 1453*4882a593Smuzhiyun+ pattern = xcalloc (l + 3, sizeof (pattern[0])); 1454*4882a593Smuzhiyun memcpy (pattern, name_windows, l * sizeof (pattern[0])); 1455*4882a593Smuzhiyun pattern[l] = '\\'; 1456*4882a593Smuzhiyun pattern[l + 1] = '*'; 1457*4882a593Smuzhiyundiff --git a/grub-core/osdep/windows/init.c b/grub-core/osdep/windows/init.c 1458*4882a593Smuzhiyunindex e8ffd62c6..6297de632 100644 1459*4882a593Smuzhiyun--- a/grub-core/osdep/windows/init.c 1460*4882a593Smuzhiyun+++ b/grub-core/osdep/windows/init.c 1461*4882a593Smuzhiyun@@ -161,7 +161,7 @@ grub_util_host_init (int *argc __attribute__ ((unused)), 1462*4882a593Smuzhiyun LPWSTR *targv; 1463*4882a593Smuzhiyun 1464*4882a593Smuzhiyun targv = CommandLineToArgvW (tcmdline, argc); 1465*4882a593Smuzhiyun- *argv = xmalloc ((*argc + 1) * sizeof (argv[0])); 1466*4882a593Smuzhiyun+ *argv = xcalloc (*argc + 1, sizeof (argv[0])); 1467*4882a593Smuzhiyun 1468*4882a593Smuzhiyun for (i = 0; i < *argc; i++) 1469*4882a593Smuzhiyun (*argv)[i] = grub_util_tchar_to_utf8 (targv[i]); 1470*4882a593Smuzhiyundiff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c 1471*4882a593Smuzhiyunindex 7eb53fe01..1ef86bf58 100644 1472*4882a593Smuzhiyun--- a/grub-core/osdep/windows/platform.c 1473*4882a593Smuzhiyun+++ b/grub-core/osdep/windows/platform.c 1474*4882a593Smuzhiyun@@ -225,8 +225,8 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, 1475*4882a593Smuzhiyun grub_util_error ("%s", _("no EFI routines are available when running in BIOS mode")); 1476*4882a593Smuzhiyun 1477*4882a593Smuzhiyun distrib8_len = grub_strlen (efi_distributor); 1478*4882a593Smuzhiyun- distributor16 = xmalloc ((distrib8_len + 1) * GRUB_MAX_UTF16_PER_UTF8 1479*4882a593Smuzhiyun- * sizeof (grub_uint16_t)); 1480*4882a593Smuzhiyun+ distributor16 = xcalloc (distrib8_len + 1, 1481*4882a593Smuzhiyun+ GRUB_MAX_UTF16_PER_UTF8 * sizeof (grub_uint16_t)); 1482*4882a593Smuzhiyun distrib16_len = grub_utf8_to_utf16 (distributor16, distrib8_len * GRUB_MAX_UTF16_PER_UTF8, 1483*4882a593Smuzhiyun (const grub_uint8_t *) efi_distributor, 1484*4882a593Smuzhiyun distrib8_len, 0); 1485*4882a593Smuzhiyundiff --git a/grub-core/osdep/windows/relpath.c b/grub-core/osdep/windows/relpath.c 1486*4882a593Smuzhiyunindex cb0861744..478e8ef14 100644 1487*4882a593Smuzhiyun--- a/grub-core/osdep/windows/relpath.c 1488*4882a593Smuzhiyun+++ b/grub-core/osdep/windows/relpath.c 1489*4882a593Smuzhiyun@@ -72,7 +72,7 @@ grub_make_system_path_relative_to_its_root (const char *path) 1490*4882a593Smuzhiyun if (dirwindows[0] && dirwindows[1] == ':') 1491*4882a593Smuzhiyun offset = 2; 1492*4882a593Smuzhiyun } 1493*4882a593Smuzhiyun- ret = xmalloc (sizeof (ret[0]) * (flen - offset + 2)); 1494*4882a593Smuzhiyun+ ret = xcalloc (flen - offset + 2, sizeof (ret[0])); 1495*4882a593Smuzhiyun if (dirwindows[offset] != '\\' 1496*4882a593Smuzhiyun && dirwindows[offset] != '/' 1497*4882a593Smuzhiyun && dirwindows[offset]) 1498*4882a593Smuzhiyundiff --git a/grub-core/partmap/gpt.c b/grub-core/partmap/gpt.c 1499*4882a593Smuzhiyunindex 103f6796f..72a2e37cd 100644 1500*4882a593Smuzhiyun--- a/grub-core/partmap/gpt.c 1501*4882a593Smuzhiyun+++ b/grub-core/partmap/gpt.c 1502*4882a593Smuzhiyun@@ -199,7 +199,7 @@ gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, 1503*4882a593Smuzhiyun *nsectors = ctx.len; 1504*4882a593Smuzhiyun if (*nsectors > max_nsectors) 1505*4882a593Smuzhiyun *nsectors = max_nsectors; 1506*4882a593Smuzhiyun- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); 1507*4882a593Smuzhiyun+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); 1508*4882a593Smuzhiyun if (!*sectors) 1509*4882a593Smuzhiyun return grub_errno; 1510*4882a593Smuzhiyun for (i = 0; i < *nsectors; i++) 1511*4882a593Smuzhiyundiff --git a/grub-core/partmap/msdos.c b/grub-core/partmap/msdos.c 1512*4882a593Smuzhiyunindex 7b8e45076..ee3f24982 100644 1513*4882a593Smuzhiyun--- a/grub-core/partmap/msdos.c 1514*4882a593Smuzhiyun+++ b/grub-core/partmap/msdos.c 1515*4882a593Smuzhiyun@@ -337,7 +337,7 @@ pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, 1516*4882a593Smuzhiyun avail_nsectors = *nsectors; 1517*4882a593Smuzhiyun if (*nsectors > max_nsectors) 1518*4882a593Smuzhiyun *nsectors = max_nsectors; 1519*4882a593Smuzhiyun- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); 1520*4882a593Smuzhiyun+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); 1521*4882a593Smuzhiyun if (!*sectors) 1522*4882a593Smuzhiyun return grub_errno; 1523*4882a593Smuzhiyun for (i = 0; i < *nsectors; i++) 1524*4882a593Smuzhiyundiff --git a/grub-core/script/execute.c b/grub-core/script/execute.c 1525*4882a593Smuzhiyunindex ee299fd0e..c8d6806fe 100644 1526*4882a593Smuzhiyun--- a/grub-core/script/execute.c 1527*4882a593Smuzhiyun+++ b/grub-core/script/execute.c 1528*4882a593Smuzhiyun@@ -553,7 +553,7 @@ gettext_append (struct grub_script_argv *result, const char *orig_str) 1529*4882a593Smuzhiyun for (iptr = orig_str; *iptr; iptr++) 1530*4882a593Smuzhiyun if (*iptr == '$') 1531*4882a593Smuzhiyun dollar_cnt++; 1532*4882a593Smuzhiyun- ctx.allowed_strings = grub_malloc (sizeof (ctx.allowed_strings[0]) * dollar_cnt); 1533*4882a593Smuzhiyun+ ctx.allowed_strings = grub_calloc (dollar_cnt, sizeof (ctx.allowed_strings[0])); 1534*4882a593Smuzhiyun 1535*4882a593Smuzhiyun if (parse_string (orig_str, gettext_save_allow, &ctx, 0)) 1536*4882a593Smuzhiyun goto fail; 1537*4882a593Smuzhiyundiff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c 1538*4882a593Smuzhiyunindex 2d6085298..b5eb516be 100644 1539*4882a593Smuzhiyun--- a/grub-core/tests/fake_input.c 1540*4882a593Smuzhiyun+++ b/grub-core/tests/fake_input.c 1541*4882a593Smuzhiyun@@ -49,7 +49,7 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) 1542*4882a593Smuzhiyun saved = grub_term_inputs; 1543*4882a593Smuzhiyun if (seq) 1544*4882a593Smuzhiyun grub_free (seq); 1545*4882a593Smuzhiyun- seq = grub_malloc (nseq_in * sizeof (seq[0])); 1546*4882a593Smuzhiyun+ seq = grub_calloc (nseq_in, sizeof (seq[0])); 1547*4882a593Smuzhiyun if (!seq) 1548*4882a593Smuzhiyun return; 1549*4882a593Smuzhiyun 1550*4882a593Smuzhiyundiff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c 1551*4882a593Smuzhiyunindex 74d5b65e5..44d081069 100644 1552*4882a593Smuzhiyun--- a/grub-core/tests/video_checksum.c 1553*4882a593Smuzhiyun+++ b/grub-core/tests/video_checksum.c 1554*4882a593Smuzhiyun@@ -336,7 +336,7 @@ grub_video_capture_write_bmp (const char *fname, 1555*4882a593Smuzhiyun { 1556*4882a593Smuzhiyun case 4: 1557*4882a593Smuzhiyun { 1558*4882a593Smuzhiyun- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); 1559*4882a593Smuzhiyun+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); 1560*4882a593Smuzhiyun grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); 1561*4882a593Smuzhiyun grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); 1562*4882a593Smuzhiyun grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); 1563*4882a593Smuzhiyun@@ -367,7 +367,7 @@ grub_video_capture_write_bmp (const char *fname, 1564*4882a593Smuzhiyun } 1565*4882a593Smuzhiyun case 3: 1566*4882a593Smuzhiyun { 1567*4882a593Smuzhiyun- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); 1568*4882a593Smuzhiyun+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); 1569*4882a593Smuzhiyun grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); 1570*4882a593Smuzhiyun grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); 1571*4882a593Smuzhiyun grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); 1572*4882a593Smuzhiyun@@ -407,7 +407,7 @@ grub_video_capture_write_bmp (const char *fname, 1573*4882a593Smuzhiyun } 1574*4882a593Smuzhiyun case 2: 1575*4882a593Smuzhiyun { 1576*4882a593Smuzhiyun- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); 1577*4882a593Smuzhiyun+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); 1578*4882a593Smuzhiyun grub_uint16_t rmask = ((1 << mode_info->red_mask_size) - 1); 1579*4882a593Smuzhiyun grub_uint16_t gmask = ((1 << mode_info->green_mask_size) - 1); 1580*4882a593Smuzhiyun grub_uint16_t bmask = ((1 << mode_info->blue_mask_size) - 1); 1581*4882a593Smuzhiyundiff --git a/grub-core/video/capture.c b/grub-core/video/capture.c 1582*4882a593Smuzhiyunindex 4f83c7441..4d3195e01 100644 1583*4882a593Smuzhiyun--- a/grub-core/video/capture.c 1584*4882a593Smuzhiyun+++ b/grub-core/video/capture.c 1585*4882a593Smuzhiyun@@ -89,7 +89,7 @@ grub_video_capture_start (const struct grub_video_mode_info *mode_info, 1586*4882a593Smuzhiyun framebuffer.mode_info = *mode_info; 1587*4882a593Smuzhiyun framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); 1588*4882a593Smuzhiyun 1589*4882a593Smuzhiyun- framebuffer.ptr = grub_malloc (framebuffer.mode_info.height * framebuffer.mode_info.pitch); 1590*4882a593Smuzhiyun+ framebuffer.ptr = grub_calloc (framebuffer.mode_info.height, framebuffer.mode_info.pitch); 1591*4882a593Smuzhiyun if (!framebuffer.ptr) 1592*4882a593Smuzhiyun return grub_errno; 1593*4882a593Smuzhiyun 1594*4882a593Smuzhiyundiff --git a/grub-core/video/emu/sdl.c b/grub-core/video/emu/sdl.c 1595*4882a593Smuzhiyunindex a2f639f66..0ebab6f57 100644 1596*4882a593Smuzhiyun--- a/grub-core/video/emu/sdl.c 1597*4882a593Smuzhiyun+++ b/grub-core/video/emu/sdl.c 1598*4882a593Smuzhiyun@@ -172,7 +172,7 @@ grub_video_sdl_set_palette (unsigned int start, unsigned int count, 1599*4882a593Smuzhiyun if (start + count > mode_info.number_of_colors) 1600*4882a593Smuzhiyun count = mode_info.number_of_colors - start; 1601*4882a593Smuzhiyun 1602*4882a593Smuzhiyun- tmp = grub_malloc (count * sizeof (tmp[0])); 1603*4882a593Smuzhiyun+ tmp = grub_calloc (count, sizeof (tmp[0])); 1604*4882a593Smuzhiyun for (i = 0; i < count; i++) 1605*4882a593Smuzhiyun { 1606*4882a593Smuzhiyun tmp[i].r = palette_data[i].r; 1607*4882a593Smuzhiyundiff --git a/grub-core/video/i386/pc/vga.c b/grub-core/video/i386/pc/vga.c 1608*4882a593Smuzhiyunindex 01f47112d..b2f776c99 100644 1609*4882a593Smuzhiyun--- a/grub-core/video/i386/pc/vga.c 1610*4882a593Smuzhiyun+++ b/grub-core/video/i386/pc/vga.c 1611*4882a593Smuzhiyun@@ -127,7 +127,7 @@ grub_video_vga_setup (unsigned int width, unsigned int height, 1612*4882a593Smuzhiyun 1613*4882a593Smuzhiyun vga_height = height ? : 480; 1614*4882a593Smuzhiyun 1615*4882a593Smuzhiyun- framebuffer.temporary_buffer = grub_malloc (vga_height * VGA_WIDTH); 1616*4882a593Smuzhiyun+ framebuffer.temporary_buffer = grub_calloc (vga_height, VGA_WIDTH); 1617*4882a593Smuzhiyun framebuffer.front_page = 0; 1618*4882a593Smuzhiyun framebuffer.back_page = 0; 1619*4882a593Smuzhiyun if (!framebuffer.temporary_buffer) 1620*4882a593Smuzhiyundiff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c 1621*4882a593Smuzhiyunindex 777e71334..61bd64537 100644 1622*4882a593Smuzhiyun--- a/grub-core/video/readers/png.c 1623*4882a593Smuzhiyun+++ b/grub-core/video/readers/png.c 1624*4882a593Smuzhiyun@@ -309,7 +309,7 @@ grub_png_decode_image_header (struct grub_png_data *data) 1625*4882a593Smuzhiyun if (data->is_16bit || data->is_gray || data->is_palette) 1626*4882a593Smuzhiyun #endif 1627*4882a593Smuzhiyun { 1628*4882a593Smuzhiyun- data->image_data = grub_malloc (data->image_height * data->row_bytes); 1629*4882a593Smuzhiyun+ data->image_data = grub_calloc (data->image_height, data->row_bytes); 1630*4882a593Smuzhiyun if (grub_errno) 1631*4882a593Smuzhiyun return grub_errno; 1632*4882a593Smuzhiyun 1633*4882a593Smuzhiyundiff --git a/include/grub/unicode.h b/include/grub/unicode.h 1634*4882a593Smuzhiyunindex a0403e91f..4de986a85 100644 1635*4882a593Smuzhiyun--- a/include/grub/unicode.h 1636*4882a593Smuzhiyun+++ b/include/grub/unicode.h 1637*4882a593Smuzhiyun@@ -293,7 +293,7 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) 1638*4882a593Smuzhiyun grub_memcpy (out, in, sizeof (*in)); 1639*4882a593Smuzhiyun if (in->ncomb > ARRAY_SIZE (out->combining_inline)) 1640*4882a593Smuzhiyun { 1641*4882a593Smuzhiyun- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); 1642*4882a593Smuzhiyun+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); 1643*4882a593Smuzhiyun if (!out->combining_ptr) 1644*4882a593Smuzhiyun { 1645*4882a593Smuzhiyun grub_free (out); 1646*4882a593Smuzhiyun@@ -315,7 +315,7 @@ grub_unicode_set_glyph (struct grub_unicode_glyph *out, 1647*4882a593Smuzhiyun grub_memcpy (out, in, sizeof (*in)); 1648*4882a593Smuzhiyun if (in->ncomb > ARRAY_SIZE (out->combining_inline)) 1649*4882a593Smuzhiyun { 1650*4882a593Smuzhiyun- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); 1651*4882a593Smuzhiyun+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); 1652*4882a593Smuzhiyun if (!out->combining_ptr) 1653*4882a593Smuzhiyun return; 1654*4882a593Smuzhiyun grub_memcpy (out->combining_ptr, in->combining_ptr, 1655*4882a593Smuzhiyundiff --git a/util/getroot.c b/util/getroot.c 1656*4882a593Smuzhiyunindex 847406fba..a5eaa64fd 100644 1657*4882a593Smuzhiyun--- a/util/getroot.c 1658*4882a593Smuzhiyun+++ b/util/getroot.c 1659*4882a593Smuzhiyun@@ -200,7 +200,7 @@ make_device_name (const char *drive) 1660*4882a593Smuzhiyun char *ret, *ptr; 1661*4882a593Smuzhiyun const char *iptr; 1662*4882a593Smuzhiyun 1663*4882a593Smuzhiyun- ret = xmalloc (strlen (drive) * 2); 1664*4882a593Smuzhiyun+ ret = xcalloc (2, strlen (drive)); 1665*4882a593Smuzhiyun ptr = ret; 1666*4882a593Smuzhiyun for (iptr = drive; *iptr; iptr++) 1667*4882a593Smuzhiyun { 1668*4882a593Smuzhiyundiff --git a/util/grub-file.c b/util/grub-file.c 1669*4882a593Smuzhiyunindex 50c18b683..b2e7dd69f 100644 1670*4882a593Smuzhiyun--- a/util/grub-file.c 1671*4882a593Smuzhiyun+++ b/util/grub-file.c 1672*4882a593Smuzhiyun@@ -54,7 +54,7 @@ main (int argc, char *argv[]) 1673*4882a593Smuzhiyun 1674*4882a593Smuzhiyun grub_util_host_init (&argc, &argv); 1675*4882a593Smuzhiyun 1676*4882a593Smuzhiyun- argv2 = xmalloc (argc * sizeof (argv2[0])); 1677*4882a593Smuzhiyun+ argv2 = xcalloc (argc, sizeof (argv2[0])); 1678*4882a593Smuzhiyun 1679*4882a593Smuzhiyun if (argc == 2 && strcmp (argv[1], "--version") == 0) 1680*4882a593Smuzhiyun { 1681*4882a593Smuzhiyundiff --git a/util/grub-fstest.c b/util/grub-fstest.c 1682*4882a593Smuzhiyunindex f14e02d97..57246af7c 100644 1683*4882a593Smuzhiyun--- a/util/grub-fstest.c 1684*4882a593Smuzhiyun+++ b/util/grub-fstest.c 1685*4882a593Smuzhiyun@@ -650,7 +650,7 @@ argp_parser (int key, char *arg, struct argp_state *state) 1686*4882a593Smuzhiyun if (args_count < num_disks) 1687*4882a593Smuzhiyun { 1688*4882a593Smuzhiyun if (args_count == 0) 1689*4882a593Smuzhiyun- images = xmalloc (num_disks * sizeof (images[0])); 1690*4882a593Smuzhiyun+ images = xcalloc (num_disks, sizeof (images[0])); 1691*4882a593Smuzhiyun images[args_count] = grub_canonicalize_file_name (arg); 1692*4882a593Smuzhiyun args_count++; 1693*4882a593Smuzhiyun return 0; 1694*4882a593Smuzhiyun@@ -734,7 +734,7 @@ main (int argc, char *argv[]) 1695*4882a593Smuzhiyun 1696*4882a593Smuzhiyun grub_util_host_init (&argc, &argv); 1697*4882a593Smuzhiyun 1698*4882a593Smuzhiyun- args = xmalloc (argc * sizeof (args[0])); 1699*4882a593Smuzhiyun+ args = xcalloc (argc, sizeof (args[0])); 1700*4882a593Smuzhiyun 1701*4882a593Smuzhiyun argp_parse (&argp, argc, argv, 0, 0, 0); 1702*4882a593Smuzhiyun 1703*4882a593Smuzhiyundiff --git a/util/grub-install-common.c b/util/grub-install-common.c 1704*4882a593Smuzhiyunindex ca0ac612a..0295d40f5 100644 1705*4882a593Smuzhiyun--- a/util/grub-install-common.c 1706*4882a593Smuzhiyun+++ b/util/grub-install-common.c 1707*4882a593Smuzhiyun@@ -286,7 +286,7 @@ handle_install_list (struct install_list *il, const char *val, 1708*4882a593Smuzhiyun il->n_entries++; 1709*4882a593Smuzhiyun } 1710*4882a593Smuzhiyun il->n_alloc = il->n_entries + 1; 1711*4882a593Smuzhiyun- il->entries = xmalloc (il->n_alloc * sizeof (il->entries[0])); 1712*4882a593Smuzhiyun+ il->entries = xcalloc (il->n_alloc, sizeof (il->entries[0])); 1713*4882a593Smuzhiyun ptr = val; 1714*4882a593Smuzhiyun for (ce = il->entries; ; ce++) 1715*4882a593Smuzhiyun { 1716*4882a593Smuzhiyundiff --git a/util/grub-install.c b/util/grub-install.c 1717*4882a593Smuzhiyunindex 8a55ad4b8..a82725f29 100644 1718*4882a593Smuzhiyun--- a/util/grub-install.c 1719*4882a593Smuzhiyun+++ b/util/grub-install.c 1720*4882a593Smuzhiyun@@ -626,7 +626,7 @@ device_map_check_duplicates (const char *dev_map) 1721*4882a593Smuzhiyun if (! fp) 1722*4882a593Smuzhiyun return; 1723*4882a593Smuzhiyun 1724*4882a593Smuzhiyun- d = xmalloc (alloced * sizeof (d[0])); 1725*4882a593Smuzhiyun+ d = xcalloc (alloced, sizeof (d[0])); 1726*4882a593Smuzhiyun 1727*4882a593Smuzhiyun while (fgets (buf, sizeof (buf), fp)) 1728*4882a593Smuzhiyun { 1729*4882a593Smuzhiyun@@ -1260,7 +1260,7 @@ main (int argc, char *argv[]) 1730*4882a593Smuzhiyun ndev++; 1731*4882a593Smuzhiyun } 1732*4882a593Smuzhiyun 1733*4882a593Smuzhiyun- grub_drives = xmalloc (sizeof (grub_drives[0]) * (ndev + 1)); 1734*4882a593Smuzhiyun+ grub_drives = xcalloc (ndev + 1, sizeof (grub_drives[0])); 1735*4882a593Smuzhiyun 1736*4882a593Smuzhiyun for (curdev = grub_devices, curdrive = grub_drives; *curdev; curdev++, 1737*4882a593Smuzhiyun curdrive++) 1738*4882a593Smuzhiyundiff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c 1739*4882a593Smuzhiyunindex bc087c2b5..d97d0e7be 100644 1740*4882a593Smuzhiyun--- a/util/grub-mkimagexx.c 1741*4882a593Smuzhiyun+++ b/util/grub-mkimagexx.c 1742*4882a593Smuzhiyun@@ -2294,10 +2294,8 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, 1743*4882a593Smuzhiyun + grub_host_to_target16 (e->e_shstrndx) * smd.section_entsize); 1744*4882a593Smuzhiyun smd.strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); 1745*4882a593Smuzhiyun 1746*4882a593Smuzhiyun- smd.addrs = xmalloc (sizeof (*smd.addrs) * smd.num_sections); 1747*4882a593Smuzhiyun- memset (smd.addrs, 0, sizeof (*smd.addrs) * smd.num_sections); 1748*4882a593Smuzhiyun- smd.vaddrs = xmalloc (sizeof (*smd.vaddrs) * smd.num_sections); 1749*4882a593Smuzhiyun- memset (smd.vaddrs, 0, sizeof (*smd.vaddrs) * smd.num_sections); 1750*4882a593Smuzhiyun+ smd.addrs = xcalloc (smd.num_sections, sizeof (*smd.addrs)); 1751*4882a593Smuzhiyun+ smd.vaddrs = xcalloc (smd.num_sections, sizeof (*smd.vaddrs)); 1752*4882a593Smuzhiyun 1753*4882a593Smuzhiyun SUFFIX (locate_sections) (e, kernel_path, &smd, layout, image_target); 1754*4882a593Smuzhiyun 1755*4882a593Smuzhiyundiff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c 1756*4882a593Smuzhiyunindex ce2cbc4f1..51831027f 100644 1757*4882a593Smuzhiyun--- a/util/grub-mkrescue.c 1758*4882a593Smuzhiyun+++ b/util/grub-mkrescue.c 1759*4882a593Smuzhiyun@@ -441,8 +441,8 @@ main (int argc, char *argv[]) 1760*4882a593Smuzhiyun xorriso = xstrdup ("xorriso"); 1761*4882a593Smuzhiyun label_font = grub_util_path_concat (2, pkgdatadir, "unicode.pf2"); 1762*4882a593Smuzhiyun 1763*4882a593Smuzhiyun- argp_argv = xmalloc (sizeof (argp_argv[0]) * argc); 1764*4882a593Smuzhiyun- xorriso_tail_argv = xmalloc (sizeof (argp_argv[0]) * argc); 1765*4882a593Smuzhiyun+ argp_argv = xcalloc (argc, sizeof (argp_argv[0])); 1766*4882a593Smuzhiyun+ xorriso_tail_argv = xcalloc (argc, sizeof (argp_argv[0])); 1767*4882a593Smuzhiyun 1768*4882a593Smuzhiyun xorriso_tail_argc = 0; 1769*4882a593Smuzhiyun /* Program name */ 1770*4882a593Smuzhiyundiff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c 1771*4882a593Smuzhiyunindex 4907d44c0..edf309717 100644 1772*4882a593Smuzhiyun--- a/util/grub-mkstandalone.c 1773*4882a593Smuzhiyun+++ b/util/grub-mkstandalone.c 1774*4882a593Smuzhiyun@@ -296,7 +296,7 @@ main (int argc, char *argv[]) 1775*4882a593Smuzhiyun grub_util_host_init (&argc, &argv); 1776*4882a593Smuzhiyun grub_util_disable_fd_syncs (); 1777*4882a593Smuzhiyun 1778*4882a593Smuzhiyun- files = xmalloc ((argc + 1) * sizeof (files[0])); 1779*4882a593Smuzhiyun+ files = xcalloc (argc + 1, sizeof (files[0])); 1780*4882a593Smuzhiyun 1781*4882a593Smuzhiyun argp_parse (&argp, argc, argv, 0, 0, 0); 1782*4882a593Smuzhiyun 1783*4882a593Smuzhiyundiff --git a/util/grub-pe2elf.c b/util/grub-pe2elf.c 1784*4882a593Smuzhiyunindex 0d4084a10..11331294f 100644 1785*4882a593Smuzhiyun--- a/util/grub-pe2elf.c 1786*4882a593Smuzhiyun+++ b/util/grub-pe2elf.c 1787*4882a593Smuzhiyun@@ -100,9 +100,9 @@ write_section_data (FILE* fp, const char *name, char *image, 1788*4882a593Smuzhiyun char *pe_strtab = (image + pe_chdr->symtab_offset 1789*4882a593Smuzhiyun + pe_chdr->num_symbols * sizeof (struct grub_pe32_symbol)); 1790*4882a593Smuzhiyun 1791*4882a593Smuzhiyun- section_map = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (int)); 1792*4882a593Smuzhiyun+ section_map = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (int)); 1793*4882a593Smuzhiyun section_map[0] = 0; 1794*4882a593Smuzhiyun- shdr = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (shdr[0])); 1795*4882a593Smuzhiyun+ shdr = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (shdr[0])); 1796*4882a593Smuzhiyun idx = 1; 1797*4882a593Smuzhiyun idx_reloc = pe_chdr->num_sections + 1; 1798*4882a593Smuzhiyun 1799*4882a593Smuzhiyun@@ -233,7 +233,7 @@ write_reloc_section (FILE* fp, const char *name, char *image, 1800*4882a593Smuzhiyun 1801*4882a593Smuzhiyun pe_sec = pe_shdr + shdr[i].sh_link; 1802*4882a593Smuzhiyun pe_rel = (struct grub_pe32_reloc *) (image + pe_sec->relocations_offset); 1803*4882a593Smuzhiyun- rel = (elf_reloc_t *) xmalloc (pe_sec->num_relocations * sizeof (elf_reloc_t)); 1804*4882a593Smuzhiyun+ rel = (elf_reloc_t *) xcalloc (pe_sec->num_relocations, sizeof (elf_reloc_t)); 1805*4882a593Smuzhiyun num_rels = 0; 1806*4882a593Smuzhiyun modified = 0; 1807*4882a593Smuzhiyun 1808*4882a593Smuzhiyun@@ -365,12 +365,10 @@ write_symbol_table (FILE* fp, const char *name, char *image, 1809*4882a593Smuzhiyun pe_symtab = (struct grub_pe32_symbol *) (image + pe_chdr->symtab_offset); 1810*4882a593Smuzhiyun pe_strtab = (char *) (pe_symtab + pe_chdr->num_symbols); 1811*4882a593Smuzhiyun 1812*4882a593Smuzhiyun- symtab = (Elf_Sym *) xmalloc ((pe_chdr->num_symbols + 1) * 1813*4882a593Smuzhiyun- sizeof (Elf_Sym)); 1814*4882a593Smuzhiyun- memset (symtab, 0, (pe_chdr->num_symbols + 1) * sizeof (Elf_Sym)); 1815*4882a593Smuzhiyun+ symtab = (Elf_Sym *) xcalloc (pe_chdr->num_symbols + 1, sizeof (Elf_Sym)); 1816*4882a593Smuzhiyun num_syms = 1; 1817*4882a593Smuzhiyun 1818*4882a593Smuzhiyun- symtab_map = (int *) xmalloc (pe_chdr->num_symbols * sizeof (int)); 1819*4882a593Smuzhiyun+ symtab_map = (int *) xcalloc (pe_chdr->num_symbols, sizeof (int)); 1820*4882a593Smuzhiyun 1821*4882a593Smuzhiyun for (i = 0; i < (int) pe_chdr->num_symbols; 1822*4882a593Smuzhiyun i += pe_symtab->num_aux + 1, pe_symtab += pe_symtab->num_aux + 1) 1823*4882a593Smuzhiyundiff --git a/util/grub-probe.c b/util/grub-probe.c 1824*4882a593Smuzhiyunindex 81d27eead..cbe6ed94c 100644 1825*4882a593Smuzhiyun--- a/util/grub-probe.c 1826*4882a593Smuzhiyun+++ b/util/grub-probe.c 1827*4882a593Smuzhiyun@@ -361,8 +361,8 @@ probe (const char *path, char **device_names, char delim) 1828*4882a593Smuzhiyun grub_util_pull_device (*curdev); 1829*4882a593Smuzhiyun ndev++; 1830*4882a593Smuzhiyun } 1831*4882a593Smuzhiyun- 1832*4882a593Smuzhiyun- drives_names = xmalloc (sizeof (drives_names[0]) * (ndev + 1)); 1833*4882a593Smuzhiyun+ 1834*4882a593Smuzhiyun+ drives_names = xcalloc (ndev + 1, sizeof (drives_names[0])); 1835*4882a593Smuzhiyun 1836*4882a593Smuzhiyun for (curdev = device_names, curdrive = drives_names; *curdev; curdev++, 1837*4882a593Smuzhiyun curdrive++) 1838*4882a593Smuzhiyun-- 1839*4882a593Smuzhiyun2.26.2 1840*4882a593Smuzhiyun 1841