In the merge request shown below, 1 too many bytes are
written to stdout thus including the terminating null.
As the cure, this commit just reduces the length by 1.
[ along the way, we will remove some unneeded braces ]
[ plus add some additional comments with attribution ]
Reference(s):
https://gitlab.com/procps-ng/procps/-/merge_requests/127
. original ported cchange
commit
6b8980a3b6279058d727377e914cfb6439d6f178
Signed-off-by: Jim Warner <james.warner@comcast.net>
procps_pids_unref(&Pids_ctx);
procps_stat_unref(&Stat_ctx);
+ /* we'll only have a 'str' if called by error_exit() |
+ not ever from the sig_endpgm() signal handler ... | */
if (str) {
fputs(str, stderr);
exit(EXIT_FAILURE);
}
- if (Batch) {
- write(fileno(stdout), "\n", sizeof("\n"));
- }
+ /* this could happen when called from several places |
+ including that sig_endpgm(). thus we must use an |
+ async-signal-safe write function just in case ... |
+ (thanks: Shaohua Zhan shaohua.zhan@windriver.com) | */
+ if (Batch)
+ write(fileno(stdout), "\n", sizeof("\n") - 1);
+
exit(EXIT_SUCCESS);
} // end: bye_bye