diff options
author | 2007-01-29 16:22:29 +0000 | |
---|---|---|
committer | 2007-01-29 16:22:29 +0000 | |
commit | 005d0989509df1c659c8b3acaa15cefeac75e66a (patch) | |
tree | 86505d7150b82d2a481ac03cc7aa65841f48822c | |
parent | no longer spit out that you can add new files using 'cvs add', (diff) | |
download | wireguard-openbsd-005d0989509df1c659c8b3acaa15cefeac75e66a.tar.xz wireguard-openbsd-005d0989509df1c659c8b3acaa15cefeac75e66a.zip |
introduce xsnprintf(); OK otto@ joris@.
-rw-r--r-- | usr.bin/cvs/xmalloc.c | 18 | ||||
-rw-r--r-- | usr.bin/cvs/xmalloc.h | 8 |
2 files changed, 23 insertions, 3 deletions
diff --git a/usr.bin/cvs/xmalloc.c b/usr.bin/cvs/xmalloc.c index 1baf4a1ea2d..9883da91ef9 100644 --- a/usr.bin/cvs/xmalloc.c +++ b/usr.bin/cvs/xmalloc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.c,v 1.6 2006/03/28 02:13:44 ray Exp $ */ +/* $OpenBSD: xmalloc.c,v 1.7 2007/01/29 16:22:29 xsa Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland @@ -102,3 +102,19 @@ xasprintf(char **ret, const char *fmt, ...) return (i); } + +int +xsnprintf(char *str, size_t size, const char *fmt, ...) +{ + va_list ap; + int i; + + va_start(ap, fmt); + i = vsnprintf(str, size, fmt, ap); + va_end(ap); + + if (i == -1 || i >= (int)size) + fatal("xsnprintf: overflow"); + + return (i); +} diff --git a/usr.bin/cvs/xmalloc.h b/usr.bin/cvs/xmalloc.h index 736666950d2..54b39dce9bd 100644 --- a/usr.bin/cvs/xmalloc.h +++ b/usr.bin/cvs/xmalloc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.h,v 1.2 2006/03/28 02:13:44 ray Exp $ */ +/* $OpenBSD: xmalloc.h,v 1.3 2007/01/29 16:22:29 xsa Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> @@ -27,5 +27,9 @@ char *xstrdup(const char *); int xasprintf(char **, const char *, ...) __attribute__((__format__ (printf, 2, 3))) __attribute__((__nonnull__ (2))); +int xsnprintf(char *, size_t, const char *, ...) + __attribute__((__format__ (printf, 3, 4))) + __attribute__((__nonnull__ (3))) + __attribute__((__bounded__ (__string__,1,2))); -#endif /* XMALLOC_H */ +#endif /* XMALLOC_H */ |