Commit Graph

30 Commits

Author SHA1 Message Date
Gregory Nutt
d09f6aaa72 Correct more improper use of malloc(), zalloc(), and free()
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));
2020-08-04 20:41:43 +01:00
Xiang Xiao
cde88cabcc Run codespell -w with the latest dictonary again
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
Xiang Xiao
bd4e8e19d3 Run codespell -w against all files
and fix the wrong correction
2020-02-22 14:45:07 -06:00
Adam Porter
3505cce201 drivers/usbhost/usbhost_composite.c: The cfgdesc pointer was initialized after the buffer had been advanced, so it was not pointing where it should. The totallen operations at the end of the function ended up overwriting memory belonging to the first copied interface descriptor. 2019-06-22 07:27:15 -06:00
Adam Porter
7d42b19a8d drivers/usbhost/usbhost_composite.c: I'm working on a CDC/NCM driver and in my driver's usbhost_cfgdesc() function I need access to the class-specific descriptors. Currently these are not available if the interface is part of a composite device, since only interface and endpoint descriptors are copied by usbhost_copyinterface(). This comit will also copy any class-specific interface descriptors for use in downstream class drivers.
NOTE: There's one change that might be incorrect, where I skip interfaces with zero endpoints. I did this because my device has two consecutive interface descriptors with the same interface number, one for altsetting 0 with no endpoints, and another for altsetting 1 with 1 endpoint.  The loop was aborting due to finding two interface descriptors back-to-back.
2019-06-21 06:58:44 -06:00
Gregory Nutt
9546481054 Fix some typographical errors. 2018-09-14 06:55:45 -06:00
Gregory Nutt
0de294a586 Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they. 2017-05-11 13:35:56 -06:00
Janne Rosberg
4b282f219a usbhost_composite: fix end offset in usbhost_copyinterface() 2016-11-30 12:18:23 -06:00
Janne Rosberg
847d2b4218 usbhost/composite: fix compile; missing semicolons 2016-10-18 11:52:23 -06:00
Gregory Nutt
e958c32e4d USB host composite: Using wrong interface number from interface descriptor. 2016-08-31 13:29:38 -06:00
Gregory Nutt
ebe829c4b9 USB host composite: A test should be <= not just < 2016-08-31 13:24:38 -06:00
Gregory Nutt
7b75a32ca1 Improve some comments 2016-08-31 08:16:12 -06:00
Gregory Nutt
cb7c1c1f14 USB host composite: Add an option to permit support only a subset of the composite intefaces. 2016-08-31 07:56:27 -06:00
Gregory Nutt
aa0d1868f5 USB host composite: Fix places where the wrong pointer was used; Add a test for an error condition. 2016-08-30 13:58:01 -06:00
Gregory Nutt
ac623abc7d USB host composite: Reosolves last remaining REVISIT design issues. Compiles clean with no errors and warning and is fully ready for testing. 2016-08-30 10:52:41 -06:00
Gregory Nutt
ee83e49f75 Update a comment 2016-08-29 15:43:11 -06:00
Gregory Nutt
1ce4db8008 USB host composite: Save some information that will be needed to create a class-specific configuration. 2016-08-29 15:02:15 -06:00
Gregory Nutt
f4f807100b Update comment 2016-08-29 14:55:03 -06:00
Alpo Leinonen
7d5173ca09 USB host composite: Several syntactic errors fixed 2016-08-29 07:53:57 -06:00
Gregory Nutt
31c364457a CLASS_CONNECT needs to be called for each member of the composite. 2016-08-28 08:48:40 -06:00
Gregory Nutt
58b45d64d7 Fix composite connect method. 2016-08-28 08:33:38 -06:00
Gregory Nutt
5d4428be93 Add check of class ID in device scriptor header 2016-08-27 10:53:43 -06:00
Gregory Nutt
c973e0d3ba Add the logic necessary to abstract the register lookup information for each candiate class 2016-08-27 10:31:18 -06:00
Gregory Nutt
2460d41ae0 Add more logic to the USB host composite wrapper. 2016-08-26 17:03:16 -06:00
Gregory Nutt
0860621e60 Fill one more case of 'Missing logic' in the USB host composite wrapper. 2016-08-26 12:34:58 -06:00
Gregory Nutt
3c0b287fe9 Fill in a little of the 'Missing logic' in the USB host composite wrapper. 2016-08-26 12:24:35 -06:00
Gregory Nutt
a228b0cc36 Add a little more meat to the still very USB host composite skeleton. Not quite so boney now. 2016-08-26 10:33:41 -06:00
Gregory Nutt
fa4e9e3c1c Add a little more meat to the still very bony USB host composite skeleton. 2016-08-26 10:13:35 -06:00
Gregory Nutt
579e338cd3 Add a little more meat to the USB host composite skeleton. Still pretty bony. 2016-08-26 09:47:38 -06:00
Gregory Nutt
8a1d6c9ed8 Basic framework that might be used to add USB host support 2016-08-26 09:07:52 -06:00