d09f6aaa72
malloc() and free() should never be used within the OS. This will work in the FLAT build because there is only a single heap, but will cause problems in PROTECTED and KERNEL build modes where there are separate heaps for user and kernel memory. Typically kmm_malloc(), kmm_zalloc(), and kmm_free() should be called within the kernel in those build modes to use the kernel heap. Memory is never free. Possible memory leak: ./boards/arm/cxd56xx/common/src/cxd56_crashdump.c: pdump = malloc(sizeof(fullcontext_t)); Memory allocated with malloc(), but freed with kmm_free(): ./drivers/usbhost/usbhost_composite.c: cfgbuffer = (FAR uint8_t *)malloc(CUSTOM_CONFIG_BUFSIZE); Memory is never freed in these cases. It is allocated in the driver initialization logic, but there is no corresponding uninitialization logic; memory is not freed on error conditions: ./arch/arm/src/lc823450/lc823450_i2s.c: priv = (struct lc823450_i2s_s *)zalloc(sizeof(struct lc823450_i2s_s)); ./arch/arm/src/sam34/sam_spi.c: spics = (struct sam_spics_s *)zalloc(sizeof(struct sam_spics_s)); ./arch/arm/src/sama5/sam_spi.c: spics = (struct sam_spics_s *)zalloc(sizeof(struct sam_spics_s)); ./arch/arm/src/samv7/sam_spi.c: spics = (struct sam_spics_s *)zalloc(sizeof(struct sam_spics_s)); Memory is allocated with zalloc() but freed on error conditions with kmm_free(): ./arch/arm/src/sama5/sam_ssc.c: priv = (struct sam_ssc_s *)zalloc(sizeof(struct sam_ssc_s)); ./arch/arm/src/samv7/sam_ssc.c: priv = (struct sam_ssc_s *)zalloc(sizeof(struct sam_ssc_s)); ./arch/arm/src/stm32/stm32_i2s.c: priv = (struct stm32_i2s_s *)zalloc(sizeof(struct stm32_i2s_s)); Memory is never freed: ./drivers/spi/spi_bitbang.c: priv = (FAR struct spi_bitbang_s *)zalloc(sizeof(struct spi_bitbang_s)); |
||
---|---|---|
.. | ||
a1x/pcduino-a10 | ||
am335x/beaglebone-black | ||
c5471/c5471evm | ||
cxd56xx | ||
dm320/ntosd-dm320 | ||
efm32 | ||
eoss3/quickfeather | ||
imx6/sabre-6quad | ||
imxrt | ||
kinetis | ||
kl | ||
lc823450/lc823450-xgevk | ||
lpc17xx_40xx | ||
lpc31xx | ||
lpc43xx | ||
lpc54xx/lpcxpresso-lpc54628 | ||
lpc214x | ||
lpc2378/olimex-lpc2378 | ||
max326xx/max32660-evsys | ||
moxart/moxa | ||
nrf52 | ||
nuc1xx/nutiny-nuc120 | ||
s32k1xx | ||
sam34 | ||
sama5 | ||
samd2l2 | ||
samd5e5 | ||
samv7 | ||
stm32 | ||
stm32f0l0g0 | ||
stm32f7 | ||
stm32h7 | ||
stm32l4 | ||
str71x/olimex-strp711 | ||
tiva | ||
tms570 | ||
xmc4 |