'nread' is of type 'ssize_t' 'tot' adds up different values contained in 'nread', so it should also be 'ssize_t', and not 'int' (which possibly overflows). Signed-off-by: Alejandro Colomar <colomar.6.4.3@xxxxxxxxx> --- man5/core.5 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/man5/core.5 b/man5/core.5 index a87ebbaf4..45c9de845 100644 --- a/man5/core.5 +++ b/man5/core.5 @@ -654,8 +654,7 @@ Total bytes in core dump: 282624 int main(int argc, char *argv[]) { - int tot; - ssize_t nread; + ssize_t nread, tot; char buf[BUF_SIZE]; FILE *fp; char cwd[PATH_MAX]; @@ -684,7 +683,7 @@ main(int argc, char *argv[]) tot = 0; while ((nread = read(STDIN_FILENO, buf, BUF_SIZE)) > 0) tot += nread; - fprintf(fp, "Total bytes in core dump: %d\en", tot); + fprintf(fp, "Total bytes in core dump: %zd\en", tot); fclose(fp); exit(EXIT_SUCCESS); -- 2.28.0