From 588329ab35b71f2a11d4ef986d6653fd22c58746 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 10 Dec 2005 20:42:42 +0000 Subject: [PATCH] (lwpCreate): Check for lwpNewContext() success. --- src/lib/lwp/lwp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/lwp/lwp.c b/src/lib/lwp/lwp.c index 1288a285..ce531fb7 100644 --- a/src/lib/lwp/lwp.c +++ b/src/lib/lwp/lwp.c @@ -146,7 +146,7 @@ lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *nam struct lwpProc *newp; if (!(newp = malloc(sizeof(struct lwpProc)))) - return 0; + return NULL; newp->flags = flags; newp->name = strdup(name); newp->desc = strdup(desc); @@ -159,7 +159,12 @@ lwpCreate(int priority, void (*entry)(void *), int stacksz, int flags, char *nam priority = LWP_MAX_PRIO - 1; if (LwpMaxpri < (newp->pri = priority)) LwpMaxpri = priority; - lwpNewContext(newp, stacksz); + if (lwpNewContext(newp, stacksz) < 0) { + free(newp->name); + free(newp->desc); + free(newp); + return NULL; + } lwpStatus(newp, "creating process structure %p (sbtm %p)", newp, newp->sbtm); if (flags & LWP_STACKCHECK)