summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>1997-01-17 16:10:53 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>1997-01-17 16:10:53 +0000
commit1e9e6569f34c37030bca6138fd245c51cb32e5c8 (patch)
treeb1cf1d9b48b640eeeab94be1de31665d9faf1862
parent52a1df07ed4d0702671a54ce13be73338c9af732 (diff)
Possible buf oflow.
-rw-r--r--usr.sbin/lpr/common_source/displayq.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.sbin/lpr/common_source/displayq.c b/usr.sbin/lpr/common_source/displayq.c
index 503a7c43f4f..09a17a56fc2 100644
--- a/usr.sbin/lpr/common_source/displayq.c
+++ b/usr.sbin/lpr/common_source/displayq.c
@@ -1,4 +1,5 @@
-/* $NetBSD: displayq.c,v 1.5.2.1 1995/11/19 00:41:30 pk Exp $ */
+/* $OpenBSD: displayq.c,v 1.6 1997/01/17 16:10:52 millert Exp $ */
+
/*
* Copyright (c) 1983, 1993
* The Regents of the University of California. All rights reserved.
@@ -33,7 +34,11 @@
*/
#ifndef lint
+#if 0
static char sccsid[] = "@(#)displayq.c 8.4 (Berkeley) 4/28/95";
+#else
+static char rcsid[] = "$OpenBSD: displayq.c,v 1.6 1997/01/17 16:10:52 millert Exp $";
+#endif
#endif /* not lint */
#include <sys/param.h>
@@ -324,8 +329,10 @@ inform(cf)
default: /* some format specifer and file name? */
if (line[0] < 'a' || line[0] > 'z')
continue;
- if (j == 0 || strcmp(file, line+1) != 0)
- (void) strcpy(file, line+1);
+ if (j == 0 || strcmp(file, line+1) != 0) {
+ (void) strncpy(file, line+1, sizeof(file) - 1);
+ file[sizeof(file) - 1] = '\0';
+ }
j++;
continue;
case 'N':