Module Name: src
Committed By: rillig
Date: Thu Nov 25 21:59:40 UTC 2021
Modified Files:
src/usr.bin/indent: io.c
Log Message:
indent: prevent undefined behavior in inp_line_start
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.132 -r1.133 src/usr.bin/indent/io.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/io.c
diff -u src/usr.bin/indent/io.c:1.132 src/usr.bin/indent/io.c:1.133
--- src/usr.bin/indent/io.c:1.132 Thu Nov 25 20:00:31 2021
+++ src/usr.bin/indent/io.c Thu Nov 25 21:59:40 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: io.c,v 1.132 2021/11/25 20:00:31 rillig Exp $ */
+/* $NetBSD: io.c,v 1.133 2021/11/25 21:59:40 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)io.c 8.1 (Be
#include <sys/cdefs.h>
#if defined(__NetBSD__)
-__RCSID("$NetBSD: io.c,v 1.132 2021/11/25 20:00:31 rillig Exp $");
+__RCSID("$NetBSD: io.c,v 1.133 2021/11/25 21:59:40 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/io.c 334927 2018-06-10 16:44:18Z pstef $");
#endif
@@ -94,13 +94,8 @@ inp_line_start(void)
/*
* The comment we're about to read usually comes from inp.buf, unless
* it has been copied into save_com.
- *
- * XXX: ordered comparison between pointers from different objects
- * invokes undefined behavior (C99 6.5.8).
*/
- return inbuf.inp.s >= inbuf.save_com_buf &&
- inbuf.inp.s < inbuf.save_com_buf + array_length(inbuf.save_com_buf)
- ? inbuf.save_com_buf : inbuf.inp.buf;
+ return inbuf.saved_inp_s != NULL ? inbuf.save_com_buf : inbuf.inp.buf;
}
const char *