diff options
| author | christos <christos@NetBSD.org> | 2006-03-18 23:31:19 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 2006-03-18 23:31:19 +0000 |
| commit | 8319a6a7daac9fe84141a057625a778420a5b95d (patch) | |
| tree | 3a739457f87a5854db089bb8533bf692c8fc1d6c /games/adventure | |
| parent | c873d1eb57da58e26edb7f5f642ebcaae8923689 (diff) | |
Coverity CID 777: Fix NULL pointer deref and de-obfuscate code.
Diffstat (limited to 'games/adventure')
| -rw-r--r-- | games/adventure/io.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/games/adventure/io.c b/games/adventure/io.c index aed2deb4d27..6ad8b0e53ac 100644 --- a/games/adventure/io.c +++ b/games/adventure/io.c @@ -1,4 +1,4 @@ -/* $NetBSD: io.c,v 1.16 2005/07/01 00:03:36 jmc Exp $ */ +/* $NetBSD: io.c,v 1.17 2006/03/18 23:31:19 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.16 2005/07/01 00:03:36 jmc Exp $"); +__RCSID("$NetBSD: io.c,v 1.17 2006/03/18 23:31:19 christos Exp $"); #endif #endif /* not lint */ @@ -353,7 +353,7 @@ rtrav(void) for (oldloc = -1;;) { /* get another line */ /* end of entry */ - if ((locc = rnum()) != oldloc && oldloc >= 0) { + if ((locc = rnum()) != oldloc && oldloc >= 0 && t) { t->next = 0; /* terminate the old entry */ /* printf("%d:%d entries\n",oldloc,entries); */ /* twrite(oldloc); */ @@ -384,11 +384,11 @@ rtrav(void) m = atoi(buf); } while (breakch != LF) { /* only do one line at a time */ - if (entries++) { - t = t->next = (struct travlist *) - malloc(sizeof(struct travlist)); - if (t == NULL) + if (t && entries++) { + t->next = malloc(sizeof(struct travlist)); + if (t->next == NULL) err(1, NULL); + t = t->next; } t->tverb = rnum(); /* get verb from the file */ t->tloc = n; /* table entry mod 1000 */ |
