u-boot/common
Kumar Gala 6163f5b4c8 malloc: Fix issue with calloc memory possibly being non-zero
Since we set #define MORECORE_CLEARS 1, the code assumes 'sbrk' always
returns zero'd out memory.  However since its possible that free()
returns memory back to sbrk() via malloc_trim we could possible get
non-zero'd memory from sbrk().  This is a problem for when code might
call calloc() and expect the memory to have been zero'd out.

There are two possible solutions to this problem.
1. change #define MORECORE_CLEARS 0
2. memset to zero memory returned to sbrk.

We go with the second since the sbrk being called to free up memory
should be pretty rare.

The following code problems an example test to show the issue.  This
test code was inserted right after the call to mem_malloc_init().

...
       u8 *p2;
       int i;

       printf("MALLOC TEST\n");
       p1 = malloc(135176);
       printf("P1 = %p\n", p1);
       memset(p1, 0xab, 135176);

       free(p1);
       p2 = calloc(4097, 1);
       printf("P2 = %p %p\n", p2, p2 + 4097);

       for (i = 0; i < 4097; i++) {
	       if (p2[i] != 0)
		       printf("miscompare at byte %d got %x\n", i, p2[i]);

       free(p2);
       printf("END MALLOC TEST\n\n");
...

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Tested-by: Wolfgang Denk <wd@denx.de>
2010-11-17 22:06:40 +01:00
..
bedbug.c common: Move conditional compilation to Makefile 2008-08-13 01:40:38 +02:00
cmd_ambapp.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_bdinfo.c Drop support for CONFIG_SYS_ARM_WITHOUT_RELOC 2010-10-29 21:39:59 +02:00
cmd_bedbug.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_bmp.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
cmd_boot.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_bootldr.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_bootm.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
cmd_cache.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_console.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_cplbinfo.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_cramfs.c various cmd_* files: remove the command name from the help message 2010-08-09 01:06:34 +02:00
cmd_dataflash_mmc_mux.c various cmd_* files: remove the command name from the help message 2010-08-09 01:06:34 +02:00
cmd_date.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
cmd_dcr.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_df.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_diag.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_display.c led_display: split led display support into generic and hw-dependent parts 2010-10-12 22:44:33 +02:00
cmd_dtt.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_echo.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_eeprom.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_elf.c cmd_elf: add an option for loading ELFs according to PHDRs 2010-10-06 22:42:14 +02:00
cmd_exit.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_ext2.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_fat.c fs/fat: Big code cleanup. 2010-07-24 20:54:46 +02:00
cmd_fdc.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_fdos.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_fdt.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_flash.c CONFIG_CMD_JFFS2 is not necessary to use mtdparts on erase & protect on/off 2010-10-12 21:02:55 +02:00
cmd_fpga.c cmd_fpga: cleanup help and check parameters 2010-10-19 23:52:45 +02:00
cmd_help.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_i2c.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
cmd_ide.c Remove HMI10 board support 2010-09-19 21:28:25 +02:00
cmd_immap.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_irq.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_itest.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_jffs2.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_license.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_load.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_log.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mac.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_mem.c cp/cmp: Add WATCHDOG_RESET in copy and compare loop 2010-10-12 22:50:19 +02:00
cmd_mfsl.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mgdisk.c various cmd_* files: remove the command name from the help message 2010-08-09 01:06:34 +02:00
cmd_mii.c miiphy: constify device name 2010-08-09 11:52:29 -07:00
cmd_misc.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mmc.c cmd_mmc: use common usage function 2010-09-21 21:37:08 +02:00
cmd_mp.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mtdparts.c Followup fixes on the mtdparts spread patchset 2010-10-11 15:11:01 -05:00
cmd_nand.c Fix warning in nand unlock command 2010-10-18 14:54:08 -05:00
cmd_net.c Revert "cmd_net: drop spurious comma in U_BOOT_CMD" 2010-10-27 20:13:46 +02:00
cmd_nvedit.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
cmd_onenand.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
cmd_otp.c Blackfin: otp: fix build after constification of args[] 2010-10-02 16:00:40 -04:00
cmd_pci.c pci: Clean up PCI info when CONFIG_PCI_SCAN_SHOW 2010-11-14 23:46:46 +01:00
cmd_pcmcia.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_portio.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_reginfo.c mpc85xx: Add reginfo command 2010-07-16 10:55:09 -05:00
cmd_reiser.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_sata.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_scsi.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_setexpr.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_sf.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_source.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_spi.c sspi: add options to specify bus and mode 2010-10-06 20:50:38 -04:00
cmd_spibootldr.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_strings.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_terminal.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_test.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_tsi148.c TSI148: Fix argument parsing 2010-10-12 23:31:10 +02:00
cmd_ubi.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_ubifs.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_universe.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_usb.c Fixed clobbered output of the "help usb" command 2010-08-12 16:40:00 +02:00
cmd_version.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_vfd.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_ximg.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_yaffs2.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
command.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
console.c Make *printf() return "int" instead of "void" 2010-07-04 23:51:49 +02:00
ddr_spd.c Enabled support for Rev 1.3 SPD for DDR2 DIMMs 2010-05-12 04:54:30 -05:00
dlmalloc.c malloc: Fix issue with calloc memory possibly being non-zero 2010-11-17 22:06:40 +01:00
dlmalloc.src * Code cleanup: 2003-06-27 21:31:46 +00:00
env_common.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
env_dataflash.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_eeprom.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_embedded.c Revert "env: only build env_embedded and envcrc when needed" 2009-10-27 20:46:31 +01:00
env_flash.c env_flash: Disable debug print statements 2010-10-23 22:10:14 +02:00
env_mgdisk.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_mmc.c env_mmc: fix compile warning 2010-11-14 23:28:21 +01:00
env_nand.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_nowhere.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_nvram.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_onenand.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_sf.c env_sf: remove warning introduced with last patch 2010-10-29 23:07:59 +02:00
exports.c Remove support for CONFIG_HAS_UID and "forceenv" command 2010-09-19 19:29:47 +02:00
fdt_support.c common/fdt_support.c: Fix compile warnings 2010-10-20 08:59:16 +02:00
flash.c cfi_flash: Simplify dynamic flash bank number detection 2010-09-20 15:08:51 +02:00
hush.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
hwconfig.c hwconfig: Utilize getenv_f before relocation to allow for larger buffer 2010-10-23 22:10:54 +02:00
image.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
iomux.c stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
kgdb.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
kgdb_stubs.c kgdb: add default generic stubs 2010-01-18 00:23:00 +01:00
lcd.c Enable PXAFB for PXA27X and PXA3XX 2010-07-14 22:41:39 +02:00
lynxkdi.c Fix implicit declaration of function 'eth_[gs]etenv_enetaddr' 2009-03-28 20:16:16 +01:00
main.c Replace MAX_CMDBUF_SIZE references with CONFIG_SYS_CBSIZE 2010-10-06 23:02:37 +02:00
Makefile Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
memsize.c Sequential accesses to non-existent memory must be synchronized, 2006-11-06 17:06:36 +01:00
miiphyutil.c miiphy: leverage current_mii cache more 2010-08-09 11:52:30 -07:00
modem.c make MODEM SUPPORT generic instead of duplicate it 2009-06-12 20:45:47 +02:00
s_record.c Initial revision 2002-08-17 09:36:01 +00:00
serial.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
stdio.c Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC 2010-10-29 21:32:07 +02:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
usb.c USB: usb_control_msg wait for driver ISR to set status. 2010-02-03 22:06:59 +01:00
usb_kbd.c USB Consolidate descriptor definitions 2009-12-20 12:47:37 +01:00
usb_storage.c usb_storage: constify us_direction lookup table 2010-10-22 21:41:46 +02:00
xyzModem.c common: fix 'dummy' is used uninitialized in this function warning 2009-07-19 21:37:02 +02:00