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('/');