diff options
author | Russ Allbery <eagle@eyrie.org> | 2018-05-27 20:59:59 -0700 |
---|---|---|
committer | Russ Allbery <eagle@eyrie.org> | 2018-05-27 20:59:59 -0700 |
commit | bdcb3741db27d6b773ce7cdf05aab063a70ea100 (patch) | |
tree | 11e11bb646e0b58db6e23b59e3c856ea59ef3545 /tests/tap/process.c | |
parent | 62a9101895a2d596bf91231f119d338d2025ff08 (diff) |
Update to rra-c-util 7.2 and C TAP Harness 4.3
Update to rra-c-util 7.2:
* Improve configure output for krb5-config testing.
* Define UINT32_MAX for systems that don't have it.
* Add SPDX-License-Identifier headers to all substantial source files.
* Fix new warnings from GCC 7 and Clang warnings.
* Require Test::Strict 0.25 or later to run those tests.
* Fix off-by-one error in return-value checks for snprintf.
* Use Autoconf to probe for supported warning flags.
* Fix running module-version-t -u with current versions of Perl.
* Use C_TAP_SOURCE and C_TAP_BUILD instead of SOURCE and BUILD.
Update to C TAP Harness 4.3:
* Add support for valgrind and libtool in test lists.
* Report test failures as left and right, not wanted and expected.
* Fix string comparisons with NULL pointers and the string "(null)".
* Add SPDX-License-Identifier headers to all substantial source files.
* Avoid zero-length realloc allocations in breallocarray.
* Fix new warnings from GCC 7 and Clang warnings.
* Use C_TAP_SOURCE and C_TAP_BUILD instead of SOURCE and BUILD.
Diffstat (limited to 'tests/tap/process.c')
-rw-r--r-- | tests/tap/process.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests/tap/process.c b/tests/tap/process.c index 8c22324..d9e94d8 100644 --- a/tests/tap/process.c +++ b/tests/tap/process.c @@ -11,11 +11,11 @@ * mkstemp. * * The canonical version of this file is maintained in the rra-c-util package, - * which can be found at <http://www.eyrie.org/~eagle/software/rra-c-util/>. + * which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>. * * Written by Russ Allbery <eagle@eyrie.org> - * Copyright 2002, 2004, 2005, 2013 Russ Allbery <eagle@eyrie.org> - * Copyright 2009, 2010, 2011, 2013, 2014 + * Copyright 2002, 2004-2005, 2013, 2016-2017 Russ Allbery <eagle@eyrie.org> + * Copyright 2009-2011, 2013-2014 * The Board of Trustees of the Leland Stanford Junior University * * Permission is hereby granted, free of charge, to any person obtaining a @@ -35,6 +35,8 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include <config.h> @@ -134,6 +136,8 @@ run_child_function(test_function_type function, void *data, int *status, count = 0; do { ret = read(fds[0], buf + count, buflen - count - 1); + if (SSIZE_MAX - count <= ret) + bail("maximum output size exceeded in run_child_function"); if (ret > 0) count += ret; if (count >= buflen - 1) { @@ -141,7 +145,7 @@ run_child_function(test_function_type function, void *data, int *status, buf = brealloc(buf, buflen); } } while (ret > 0); - buf[count < 0 ? 0 : count] = '\0'; + buf[count] = '\0'; if (waitpid(child, &rval, 0) == (pid_t) -1) sysbail("waitpid failed"); close(fds[0]); @@ -364,7 +368,7 @@ process_stop_all(int success UNUSED, int primary) * Read the PID of a process from a file. This is necessary when running * under fakeroot to get the actual PID of the remctld process. */ -static long +static pid_t read_pidfile(const char *path) { FILE *file; @@ -380,7 +384,7 @@ read_pidfile(const char *path) pid = strtol(buffer, NULL, 10); if (pid <= 0) bail("cannot read PID from %s", path); - return pid; + return (pid_t) pid; } |