From: christos Date: Tue, 21 Mar 2006 17:14:15 +0000 (+0000) Subject: Coverity CID 2737: Handle linked-lists properly. Use calloc instead of malloc X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/commitdiff_plain/c75621391dae5a9b1412c1964ee8f6debf2c1035 Coverity CID 2737: Handle linked-lists properly. Use calloc instead of malloc so that we don't end up storing garbage accidentally and the next pointer is initialized. If there is an inconsistency in the file abort instead of dereferencing NULL. --- diff --git a/adventure/io.c b/adventure/io.c index 44a88b52..4ef081ef 100644 --- a/adventure/io.c +++ b/adventure/io.c @@ -1,4 +1,4 @@ -/* $NetBSD: io.c,v 1.18 2006/03/18 23:33:38 christos Exp $ */ +/* $NetBSD: io.c,v 1.19 2006/03/21 17:14:15 christos Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -39,7 +39,7 @@ #if 0 static char sccsid[] = "@(#)io.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: io.c,v 1.18 2006/03/18 23:33:38 christos Exp $"); +__RCSID("$NetBSD: io.c,v 1.19 2006/03/21 17:14:15 christos Exp $"); #endif #endif /* not lint */ @@ -361,9 +361,8 @@ rtrav(void) if (locc == -1) return; if (locc != oldloc) { /* getting a new entry */ - t = travel[locc] = (struct travlist *) - malloc(sizeof(struct travlist)); - if ( t == NULL) + t = travel[locc] = calloc(1, sizeof(*t)); + if (t == NULL) err(1, NULL); /* printf("New travel list for %d\n",locc); */ entries = 0; @@ -384,8 +383,10 @@ rtrav(void) m = atoi(buf); } while (breakch != LF) { /* only do one line at a time */ - if (t && entries++) { - t->next = malloc(sizeof(struct travlist)); + if (t == NULL) + abort(); + if (entries++) { + t->next = calloc(1, sizeof(*t)); if (t->next == NULL) err(1, NULL); t = t->next;