]> git.pond.sub.org Git - empserver/commitdiff
(lwpCreate): Check for lwpNewContext() success.
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 10 Dec 2005 20:42:42 +0000 (20:42 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 10 Dec 2005 20:42:42 +0000 (20:42 +0000)
src/lib/lwp/lwp.c

index 1288a28534bd37710b4280e2353c526f6d05f4cb..ce531fb7493a39077ff6ff7dc1da6177791be3b8 100644 (file)
@@ -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)