aboutsummaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/ChangeLog5
-rw-r--r--nuttx/drivers/mmcsd/mmcsd_sdio.c4
-rw-r--r--nuttx/fs/fs_fdopen.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 6f899a7ab..3ab4302ab 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -3300,4 +3300,9 @@
but tested has been deferred until I get the right tools.
* arch/arc/include/stm32/chip.h and arch/arm/src/stm32/chip.h:
Add support for the STM32F103VET6.
+ * fs/fs_fdopen.c: Bad check for failure to allocate memory. (Noted
+ by Ronen Vainish).
+ * drivers/mmcsd/mmcsd_sdio.c: If the MMC/SD driver were ever
+ uninitialized then there would be a double release of memory
+ (Noted by Ronen Vainish).
diff --git a/nuttx/drivers/mmcsd/mmcsd_sdio.c b/nuttx/drivers/mmcsd/mmcsd_sdio.c
index 90c73261a..d0bc6659c 100644
--- a/nuttx/drivers/mmcsd/mmcsd_sdio.c
+++ b/nuttx/drivers/mmcsd/mmcsd_sdio.c
@@ -3171,7 +3171,9 @@ errout_with_buffers:
rwb_uninitialize(&priv->rwbuffer);
errout_with_hwinit:
#endif
- mmcsd_hwuninitialize(priv);
+ mmcsd_hwuninitialize(priv); /* This will free the private data structure */
+ return ret;
+
errout_with_alloc:
kfree(priv);
return ret;
diff --git a/nuttx/fs/fs_fdopen.c b/nuttx/fs/fs_fdopen.c
index ee6440bf5..fd6aa88a8 100644
--- a/nuttx/fs/fs_fdopen.c
+++ b/nuttx/fs/fs_fdopen.c
@@ -220,7 +220,7 @@ FAR struct file_struct *fs_fdopen(int fd, int oflags, FAR _TCB *tcb)
/* Allocate the IO buffer */
stream->fs_bufstart = kmalloc(CONFIG_STDIO_BUFFER_SIZE);
- if (!stream)
+ if (!stream->fs_bufstart)
{
err = ENOMEM;
goto errout_with_sem;