diff options
author | wiz <wiz@NetBSD.org> | 2001-09-24 13:22:25 +0000 |
---|---|---|
committer | wiz <wiz@NetBSD.org> | 2001-09-24 13:22:25 +0000 |
commit | 190af08cf37d9e3ef84ed9e65660d702e2082d70 (patch) | |
tree | f9b4bc538372ab0488b413a86c3338354d4c1d09 | |
parent | de348b6ea4939bf1e7ff2fa4ac0a319b2cf7ae51 (diff) | |
download | bsdgames-darwin-190af08cf37d9e3ef84ed9e65660d702e2082d70.tar.gz bsdgames-darwin-190af08cf37d9e3ef84ed9e65660d702e2082d70.tar.zst bsdgames-darwin-190af08cf37d9e3ef84ed9e65660d702e2082d70.zip |
va_{start,end} audit:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).
Improved by comments from enami and christos -- thanks!
Heimdal/krb4/KAME changes already fed back, rest to follow.
Inspired by, but not not based on, OpenBSD.
-rw-r--r-- | larn/io.c | 5 | ||||
-rw-r--r-- | sail/pl_7.c | 8 |
2 files changed, 7 insertions, 6 deletions
@@ -1,4 +1,4 @@ -/* $NetBSD: io.c,v 1.11 2001/02/05 00:57:33 christos Exp $ */ +/* $NetBSD: io.c,v 1.12 2001/09/24 13:22:29 wiz Exp $ */ /* * io.c Larn is copyrighted 1986 by Noah Morgan. @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: io.c,v 1.11 2001/02/05 00:57:33 christos Exp $"); +__RCSID("$NetBSD: io.c,v 1.12 2001/09/24 13:22:29 wiz Exp $"); #endif /* not lint */ #include "header.h" @@ -278,6 +278,7 @@ va_dcl *outb++ = *fmt++; else { lpnt = outb; + va_end(ap); return; } wide = 0; diff --git a/sail/pl_7.c b/sail/pl_7.c index 1660761f..c752a52b 100644 --- a/sail/pl_7.c +++ b/sail/pl_7.c @@ -1,4 +1,4 @@ -/* $NetBSD: pl_7.c,v 1.24 2001/02/05 01:10:11 christos Exp $ */ +/* $NetBSD: pl_7.c,v 1.25 2001/09/24 13:22:29 wiz Exp $ */ /* * Copyright (c) 1983, 1993 @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)pl_7.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: pl_7.c,v 1.24 2001/02/05 01:10:11 christos Exp $"); +__RCSID("$NetBSD: pl_7.c,v 1.25 2001/09/24 13:22:29 wiz Exp $"); #endif #endif /* not lint */ @@ -178,9 +178,9 @@ Signal(const char *fmt, struct ship *ship, ...) va_list ap; char format[BUFSIZ]; - va_start(ap, ship); if (!done_curses) return; + va_start(ap, ship); if (*fmt == '\7') putchar(*fmt++); fmtship(format, sizeof(format), fmt, ship); @@ -195,9 +195,9 @@ Msg(const char *fmt, ...) { va_list ap; - va_start(ap, fmt); if (!done_curses) return; + va_start(ap, fmt); if (*fmt == '\7') putchar(*fmt++); vwprintw(scroll_w, fmt, ap); |