Module Name:    src
Committed By:   rillig
Date:           Sun Nov  7 13:38:32 UTC 2021

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

Log Message:
indent: remove code that accessed out-of-bounds data from buffer

Saving and restoring the exact buffer position had been necessary before
NetBSD pr_comment.c 1.114. The code accessed the buffer data out of the
bounds of [com.s, com.e), which was rather surprising. More
specifically, it accessed com.e[-1] in a case where com.e == com.s,
relying on com.e[-1] being ' ' in most cases and '*' in the case where
the comment delimiter was written to a separate output line.

Make the code easier understandable by only ever accessing the buffer
data in the bounds [buf.s, buf.e).

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.114 -r1.115 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/usr.bin/indent/pr_comment.c
diff -u src/usr.bin/indent/pr_comment.c:1.114 src/usr.bin/indent/pr_comment.c:1.115
--- src/usr.bin/indent/pr_comment.c:1.114	Sun Nov  7 13:30:15 2021
+++ src/usr.bin/indent/pr_comment.c	Sun Nov  7 13:38:32 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: pr_comment.c,v 1.114 2021/11/07 13:30:15 rillig Exp $	*/
+/*	$NetBSD: pr_comment.c,v 1.115 2021/11/07 13:38:32 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.114 2021/11/07 13:30:15 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.115 2021/11/07 13:38:32 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $");
 #endif
@@ -181,14 +181,12 @@ analyze_comment(bool *p_may_wrap, bool *
 	break_delim = false;
 
     if (break_delim) {
-	char *t = com.e;
 	com.e = com.s + 2;
 	*com.e = '\0';
 	if (opt.blanklines_before_block_comments &&
 		ps.prev_token != lsym_lbrace)
 	    blank_line_before = true;
 	dump_line();
-	com.e = com.s = t;
 	com_add_delim();
     }
 

Reply via email to