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