core: make mbox_post()/__sem_down_slow() check if valid
authorGene Cumm <gene.cumm@gmail.com>
Sat, 3 Aug 2013 20:01:28 +0000 (16:01 -0400)
committerGene Cumm <gene.cumm@gmail.com>
Sat, 3 Aug 2013 20:01:28 +0000 (16:01 -0400)
If the mailbox/semaphore is invalid, disallow additions.

Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
core/thread/mbox.c
core/thread/semaphore.c

index 6ad576b..d1c640a 100644 (file)
@@ -24,7 +24,7 @@ void mbox_init(struct mailbox *mbox, size_t size)
 
 int mbox_post(struct mailbox *mbox, void *msg, mstime_t timeout)
 {
-    if (!mbox)
+    if (!mbox_is_valid(mbox))
        return ENOMEM;
     if (sem_down(&mbox->prod_sem, timeout) == (mstime_t)-1)
        return ENOMEM;
index abd4f41..c99af9c 100644 (file)
@@ -16,7 +16,7 @@ mstime_t __sem_down_slow(struct semaphore *sem, mstime_t timeout)
 
     irq = irq_save();
 
-    if (!sem) {
+    if (!sem_is_valid(sem)) {
        rv = -1;
     } else if (sem->count >= 0) {
        /* Something already freed the semaphore on us */