]> git.cameronkatri.com Git - bsdgames-darwin.git/commitdiff
Coverity CID 2737: Handle linked-lists properly. Use calloc instead of malloc
authorchristos <christos@NetBSD.org>
Tue, 21 Mar 2006 17:14:15 +0000 (17:14 +0000)
committerchristos <christos@NetBSD.org>
Tue, 21 Mar 2006 17:14:15 +0000 (17:14 +0000)
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.

adventure/io.c

index 44a88b52f00a6ac37429352d4d6fc57532f8f784..4ef081efb5857ae0dd0426a0ef609a0ad5529c69 100644 (file)
@@ -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;