From: Matthew Fernandez Date: Sun, 27 Sep 2020 20:55:34 +0000 (-0700) Subject: return failure from push() in libpack instead of longjmping X-Git-Tag: 2.46.0~20^2^2~54^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5e08b6b17714083838e600159c369c734f65df02;p=graphviz return failure from push() in libpack instead of longjmping Related to #1801. --- diff --git a/lib/pack/ccomps.c b/lib/pack/ccomps.c index 4f9ac80e8..a20c91289 100644 --- a/lib/pack/ccomps.c +++ b/lib/pack/ccomps.c @@ -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;