Module Name:    src
Committed By:   rillig
Date:           Sun Nov  7 13:30:15 UTC 2021

Modified Files:
        src/tests/usr.bin/indent: opt_cdb.c
        src/usr.bin/indent: indent.c pr_comment.c

Log Message:
indent: only access buffer data in the range [buf.s, buf.e)

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/indent/opt_cdb.c
cvs rdiff -u -r1.212 -r1.213 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.113 -r1.114 src/usr.bin/indent/pr_comment.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/usr.bin/indent/opt_cdb.c
diff -u src/tests/usr.bin/indent/opt_cdb.c:1.4 src/tests/usr.bin/indent/opt_cdb.c:1.5
--- src/tests/usr.bin/indent/opt_cdb.c:1.4	Mon Oct 18 07:11:31 2021
+++ src/tests/usr.bin/indent/opt_cdb.c	Sun Nov  7 13:30:15 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_cdb.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
+/* $NetBSD: opt_cdb.c,v 1.5 2021/11/07 13:30:15 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -131,3 +131,39 @@ example(void)
 	int		lc;
 }
 #indent end
+
+
+#indent input
+/*
+
+ */
+#indent end
+
+#indent run -cdb
+/*
+ *
+ */
+#indent end
+
+#indent run -ncdb
+/*
+ * */
+#indent end
+
+
+#indent input
+/*
+
+*/
+#indent end
+
+#indent run -cdb
+/*
+ *
+ */
+#indent end
+
+#indent run -ncdb
+/*
+ * */
+#indent end

Index: src/usr.bin/indent/indent.c
diff -u src/usr.bin/indent/indent.c:1.212 src/usr.bin/indent/indent.c:1.213
--- src/usr.bin/indent/indent.c:1.212	Sun Nov  7 07:44:59 2021
+++ src/usr.bin/indent/indent.c	Sun Nov  7 13:30:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.c,v 1.212 2021/11/07 07:44:59 rillig Exp $	*/
+/*	$NetBSD: indent.c,v 1.213 2021/11/07 13:30:15 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)indent.c	5.1
 
 #include <sys/cdefs.h>
 #if defined(__NetBSD__)
-__RCSID("$NetBSD: indent.c,v 1.212 2021/11/07 07:44:59 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.213 2021/11/07 13:30:15 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
 #endif
@@ -840,7 +840,7 @@ want_blank_before_unary_op(void)
     if (ps.want_blank)
 	return true;
     if (token.s[0] == '+' || token.s[0] == '-')
-	return code.e[-1] == token.s[0];
+	return code.e > code.s && code.e[-1] == token.s[0];
     return false;
 }
 
@@ -1105,7 +1105,7 @@ process_else(bool *force_nl, bool *last_
 {
     ps.in_stmt = false;
 
-    if (code.e != code.s && (!opt.cuddle_else || code.e[-1] != '}')) {
+    if (code.e > code.s && (!opt.cuddle_else || code.e[-1] != '}')) {
 	if (opt.verbose)
 	    diag(0, "Line broken");
 	dump_line();		/* make sure this starts a line */
@@ -1199,7 +1199,7 @@ process_string_prefix(void)
 static void
 process_period(void)
 {
-    if (code.e[-1] == ',')
+    if (code.e > code.s && code.e[-1] == ',')
 	*code.e++ = ' ';
     *code.e++ = '.';
     ps.want_blank = false;

Index: src/usr.bin/indent/pr_comment.c
diff -u src/usr.bin/indent/pr_comment.c:1.113 src/usr.bin/indent/pr_comment.c:1.114
--- src/usr.bin/indent/pr_comment.c:1.113	Sun Nov  7 12:29:58 2021
+++ src/usr.bin/indent/pr_comment.c	Sun Nov  7 13:30:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: pr_comment.c,v 1.113 2021/11/07 12:29:58 rillig Exp $	*/
+/*	$NetBSD: pr_comment.c,v 1.114 2021/11/07 13:30:15 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)pr_comment.c
 
 #include <sys/cdefs.h>
 #if defined(__NetBSD__)
-__RCSID("$NetBSD: pr_comment.c,v 1.113 2021/11/07 12:29:58 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.114 2021/11/07 13:30:15 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $");
 #endif
@@ -239,7 +239,7 @@ copy_comment_wrap(int adj_max_line_lengt
 
 	    } else {
 		ps.next_col_1 = true;
-		if (!ch_isblank(com.e[-1]))
+		if (!(com.e > com.s && ch_isblank(com.e[-1])))
 		    com_add_char(' ');
 		last_blank = com.e - 1 - com.buf;
 	    }
@@ -273,7 +273,7 @@ copy_comment_wrap(int adj_max_line_lengt
 		    com_add_char(' ');
 		}
 
-		if (!ch_isblank(com.e[-1]))
+		if (!(com.e > com.s && ch_isblank(com.e[-1])))
 		    com_add_char(' ');
 		com_add_char('*');
 		com_add_char('/');

Reply via email to