Module Name: src Committed By: christos Date: Tue Dec 28 16:18:46 UTC 2010
Modified Files: src/tests/lib/libc/ssp: h_vsnprintf.c h_vsprintf.c Log Message: allocate the buffer at the same function level as the compiler so that the compiler knows to emit the right _chk call. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/ssp/h_vsnprintf.c \ src/tests/lib/libc/ssp/h_vsprintf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/lib/libc/ssp/h_vsnprintf.c diff -u src/tests/lib/libc/ssp/h_vsnprintf.c:1.1 src/tests/lib/libc/ssp/h_vsnprintf.c:1.2 --- src/tests/lib/libc/ssp/h_vsnprintf.c:1.1 Sun Dec 26 21:04:19 2010 +++ src/tests/lib/libc/ssp/h_vsnprintf.c Tue Dec 28 11:18:46 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: h_vsnprintf.c,v 1.1 2010/12/27 02:04:19 pgoyette Exp $ */ +/* $NetBSD: h_vsnprintf.c,v 1.2 2010/12/28 16:18:46 christos Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,29 +29,29 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: h_vsnprintf.c,v 1.1 2010/12/27 02:04:19 pgoyette Exp $"); +__RCSID("$NetBSD: h_vsnprintf.c,v 1.2 2010/12/28 16:18:46 christos Exp $"); #include <stdio.h> #include <stdlib.h> #include <stdarg.h> -static void wrap(char *str, size_t, const char *, ...); +void wrap(size_t, const char *, ...); -static void -wrap(char *str, size_t len, const char *fmt, ...) +void +wrap(size_t len, const char *fmt, ...) { + char b[10]; va_list ap; va_start(ap, fmt); - (void)vsnprintf(str, len, fmt, ap); + (void)vsnprintf(b, len, fmt, ap); + (void)printf("%s\n", b); va_end(ap); } int main(int argc, char *argv[]) { - char b[10]; size_t len = atoi(argv[1]); - wrap(b, len, "%s", "012345678910"); - (void)printf("%s\n", b); + wrap(len, "%s", "012345678901234567890"); return 0; } Index: src/tests/lib/libc/ssp/h_vsprintf.c diff -u src/tests/lib/libc/ssp/h_vsprintf.c:1.1 src/tests/lib/libc/ssp/h_vsprintf.c:1.2 --- src/tests/lib/libc/ssp/h_vsprintf.c:1.1 Sun Dec 26 21:04:19 2010 +++ src/tests/lib/libc/ssp/h_vsprintf.c Tue Dec 28 11:18:46 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: h_vsprintf.c,v 1.1 2010/12/27 02:04:19 pgoyette Exp $ */ +/* $NetBSD: h_vsprintf.c,v 1.2 2010/12/28 16:18:46 christos Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,27 +29,27 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: h_vsprintf.c,v 1.1 2010/12/27 02:04:19 pgoyette Exp $"); +__RCSID("$NetBSD: h_vsprintf.c,v 1.2 2010/12/28 16:18:46 christos Exp $"); #include <stdio.h> #include <stdarg.h> -static void wrap(char *str, const char *, ...); +static void wrap(const char *, ...); static void -wrap(char *str, const char *fmt, ...) +wrap(const char *fmt, ...) { + char b[10]; va_list ap; va_start(ap, fmt); - (void)vsprintf(str, fmt, ap); + (void)vsprintf(b, fmt, ap); + (void)printf("%s\n", b); va_end(ap); } int main(int argc, char *argv[]) { - char b[10]; - wrap(b, "%s", argv[1]); - (void)printf("%s\n", b); + wrap("%s", argv[1]); return 0; }