]> granicus.if.org Git - graphviz/commitdiff
return failure from push() in libpack instead of longjmping
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 27 Sep 2020 20:55:34 +0000 (13:55 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 4 Oct 2020 18:51:54 +0000 (11:51 -0700)
Related to #1801.

lib/pack/ccomps.c

index 4f9ac80e83df5bf1a97da5928e8531afa8937fee..a20c91289129ab85cb55599811ecbc6a48ea648d 100644 (file)
@@ -78,15 +78,14 @@ static int push(stk_t* sp, Agnode_t * np)
        if (sp->curblk->next == NULL) {
            blk_t *bp = malloc(sizeof(blk_t));
            if (bp == 0) {
-               agerr(AGERR, "gc: Out of memory\n");
-               longjmp(jbuf, 1);
+               return -1;
            }
            bp->prev = sp->curblk;
            bp->next = NULL;
            bp->data = calloc(BIGBUF, sizeof(Agnode_t *));
            if (bp->data == 0) {
-               agerr(AGERR, "gc: Out of memory\n");
-               longjmp(jbuf, 1);
+               free(bp);
+               return -1;
            }
            bp->endp = bp->data + BIGBUF;
            sp->curblk->next = bp;