Module Name: src
Committed By: riastradh
Date: Sun Mar 2 23:11:19 UTC 2025
Modified Files:
src/tests/lib/libc/stdlib: h_sort.c
Log Message:
tests/lib/libc/stdlib/h_sort: Reserve room for a NUL byte.
PR lib/58931: qsort_r() missing
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/stdlib/h_sort.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/lib/libc/stdlib/h_sort.c
diff -u src/tests/lib/libc/stdlib/h_sort.c:1.2 src/tests/lib/libc/stdlib/h_sort.c:1.3
--- src/tests/lib/libc/stdlib/h_sort.c:1.2 Sun Mar 2 20:00:32 2025
+++ src/tests/lib/libc/stdlib/h_sort.c Sun Mar 2 23:11:19 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: h_sort.c,v 1.2 2025/03/02 20:00:32 riastradh Exp $ */
+/* $NetBSD: h_sort.c,v 1.3 2025/03/02 23:11:19 riastradh Exp $ */
/*-
* Copyright (c) 2025 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: h_sort.c,v 1.2 2025/03/02 20:00:32 riastradh Exp $");
+__RCSID("$NetBSD: h_sort.c,v 1.3 2025/03/02 23:11:19 riastradh Exp $");
#include <assert.h>
#include <err.h>
@@ -137,10 +137,10 @@ main(int argc, char **argv)
* embedded NULs so we can use strcmp(3) to compare lines.
*/
off = 0;
- while ((nread = read(STDIN_FILENO, buf + off, nbuf - off)) != 0) {
+ while ((nread = read(STDIN_FILENO, buf + off, nbuf - off - 1)) != 0) {
if (nread == -1)
err(1, "read");
- if ((size_t)nread > nbuf - off)
+ if ((size_t)nread > nbuf - off - 1)
errx(1, "overlong read: %zu", (size_t)nread);
if (memchr(buf + off, '\0', (size_t)nread) != NULL)
errx(1, "NUL byte in input");
@@ -150,7 +150,7 @@ main(int argc, char **argv)
* If we filled the buffer, reallocate it with double
* the size. Bail if that would overflow.
*/
- if (nbuf - off == 0) {
+ if (nbuf - off == 1) {
if (nbuf > SIZE_MAX/2)
errx(1, "input overflow");
nbuf *= 2;