Module Name:    src
Committed By:   christos
Date:           Mon Feb 10 04:54:01 UTC 2020

Modified Files:
        src/usr.bin/xlint/common: externs.h mem.c
        src/usr.bin/xlint/xlint: xlint.c

Log Message:
use asprintf().


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/usr.bin/xlint/common/externs.h
cvs rdiff -u -r1.7 -r1.8 src/usr.bin/xlint/common/mem.c
cvs rdiff -u -r1.48 -r1.49 src/usr.bin/xlint/xlint/xlint.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/common/externs.h
diff -u src/usr.bin/xlint/common/externs.h:1.6 src/usr.bin/xlint/common/externs.h:1.7
--- src/usr.bin/xlint/common/externs.h:1.6	Fri Aug 19 06:18:11 2016
+++ src/usr.bin/xlint/common/externs.h	Sun Feb  9 23:54:01 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: externs.h,v 1.6 2016/08/19 10:18:11 christos Exp $	*/
+/*	$NetBSD: externs.h,v 1.7 2020/02/10 04:54:01 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -57,6 +57,7 @@ extern	void	*xrealloc(void *, size_t);
 extern	char	*xstrdup(const char *);
 extern	void	nomem(void);
 extern	void	*xmapalloc(size_t);
+extern  void	xasprintf(char **, const char *, ...) __printflike(2, 3);
 
 /*
  * emit.c

Index: src/usr.bin/xlint/common/mem.c
diff -u src/usr.bin/xlint/common/mem.c:1.7 src/usr.bin/xlint/common/mem.c:1.8
--- src/usr.bin/xlint/common/mem.c:1.7	Sun Jun 20 18:20:16 2004
+++ src/usr.bin/xlint/common/mem.c	Sun Feb  9 23:54:01 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: mem.c,v 1.7 2004/06/20 22:20:16 jmc Exp $	*/
+/*	$NetBSD: mem.c,v 1.8 2020/02/10 04:54:01 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,12 +37,13 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: mem.c,v 1.7 2004/06/20 22:20:16 jmc Exp $");
+__RCSID("$NetBSD: mem.c,v 1.8 2020/02/10 04:54:01 christos Exp $");
 #endif
 
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/mman.h>
+#include <stdarg.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -98,6 +99,19 @@ nomem(void)
 	errx(1, "virtual memory exhausted");
 }
 
+void
+xasprintf(char **buf, const char *fmt, ...)
+{
+	int e;
+	va_list ap;
+
+	va_start(ap, fmt);
+	e = vasprintf(buf, fmt, ap);
+	va_end(ap);
+	if (e < 0)
+		nomem();
+}
+
 #if defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
 #define	MAP_ANON	MAP_ANONYMOUS
 #endif

Index: src/usr.bin/xlint/xlint/xlint.c
diff -u src/usr.bin/xlint/xlint/xlint.c:1.48 src/usr.bin/xlint/xlint/xlint.c:1.49
--- src/usr.bin/xlint/xlint/xlint.c:1.48	Sun Feb  9 03:10:25 2020
+++ src/usr.bin/xlint/xlint/xlint.c	Sun Feb  9 23:54:01 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: xlint.c,v 1.48 2020/02/09 08:10:25 fox Exp $ */
+/* $NetBSD: xlint.c,v 1.49 2020/02/10 04:54:01 christos Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: xlint.c,v 1.48 2020/02/09 08:10:25 fox Exp $");
+__RCSID("$NetBSD: xlint.c,v 1.49 2020/02/10 04:54:01 christos Exp $");
 #endif
 
 #include <sys/param.h>
@@ -613,7 +613,7 @@ fname(const char *name)
 	const	char *bn, *suff;
 	char	**args, *ofn, *pathname;
 	const char *CC;
-	size_t	buff_size, len;
+	size_t	len;
 	int is_stdin;
 	int	fd;
 
@@ -648,13 +648,10 @@ fname(const char *name)
 			warnx("-i not supported without -o for standard input");
 			return;
 		}
-		buff_size = strlen(bn) + (bn == suff ? 4 : 2);
-		ofn = xmalloc(buff_size);
 		len = bn == suff ? strlen(bn) : (size_t)((suff - 1) - bn);
-		(void)snprintf(ofn, buff_size, "%.*s.ln", (int)len, bn);
+		xasprintf(&ofn, "%.*s.ln", (int)len, bn);
 	} else {
-		ofn = xmalloc(strlen(tmpdir) + sizeof ("lint1.XXXXXX"));
-		(void)sprintf(ofn, "%slint1.XXXXXX", tmpdir);
+		xasprintf(&ofn, "%slint1.XXXXXX", tmpdir);
 		fd = mkstemp(ofn);
 		if (fd == -1) {
 			warn("can't make temp");

Reply via email to