Module Name: src
Committed By: rillig
Date: Sat Oct 30 18:23:17 UTC 2021
Modified Files:
src/usr.bin/indent: pr_comment.c
Log Message:
indent: fix bounds check for sc_buf
Some years ago, save_com was an array of characters, used as temporary
storage. When sc_buf was added, this code was forgotten. The bounds
check must be on the array itself, not on an iterator that points
somewhere in that array.
To generate a diff of this commit:
cvs rdiff -u -r1.91 -r1.92 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.91 src/usr.bin/indent/pr_comment.c:1.92
--- src/usr.bin/indent/pr_comment.c:1.91 Sat Oct 30 16:57:18 2021
+++ src/usr.bin/indent/pr_comment.c Sat Oct 30 18:23:17 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pr_comment.c,v 1.91 2021/10/30 16:57:18 rillig Exp $ */
+/* $NetBSD: pr_comment.c,v 1.92 2021/10/30 18:23:17 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.91 2021/10/30 16:57:18 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.92 2021/10/30 18:23:17 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $");
#endif
@@ -189,11 +189,8 @@ process_comment(void)
/*
* XXX: ordered comparison between pointers from different objects
* invokes undefined behavior (C99 6.5.8).
- *
- * XXX: It's easier to understand if inp.s is used instead of inp.buf,
- * since inp.buf is only intended to be used for allocation purposes.
*/
- start = inp.s >= save_com && inp.s < save_com + sc_size ?
+ start = inp.s >= sc_buf && inp.s < sc_buf + sc_size ?
sc_buf : inp.buf;
ps.n_comment_delta = -indentation_after_range(0, start, inp.s - 2);
} else {