From 89cbc1df2bcd274d0231860fdafcc2bc7468e156 Mon Sep 17 00:00:00 2001 From: Sebastien GODARD Date: Sun, 19 Apr 2020 08:36:04 +0200 Subject: [PATCH] sar: Don't display "Inconsistent input data" when no activities are collected by sadc When no activities are collected by sadc, sadc writes an error message ("Requested activities not available"). sar used to display a second error message in addition to the previous one ("Inconsistent input data"). Remove this one. Signed-off-by: Sebastien GODARD --- sar.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/sar.c b/sar.c index 85d8511..79063de 100644 --- a/sar.c +++ b/sar.c @@ -577,10 +577,11 @@ void write_stats_startup(int curr) * @buffer Buffer where data will be saved. * * RETURNS: - * 1 if end of file has been reached, 0 otherwise. + * 0 if all the data have been successfully read. + * Otherwise, return the number of bytes left to be read. *************************************************************************** */ -int sa_read(void *buffer, size_t size) +size_t sa_read(void *buffer, size_t size) { ssize_t n; @@ -592,7 +593,7 @@ int sa_read(void *buffer, size_t size) } if (!n) - return 1; /* EOF */ + return size; /* EOF */ size -= n; buffer = (char *) buffer + n; @@ -901,6 +902,15 @@ void read_header_data(void) fprintf(stderr, "%s: sysstat_magic=%x format_magic=%x version=%s\n", __FUNCTION__, file_magic.sysstat_magic, file_magic.format_magic, version); #endif + if (rc == FILE_MAGIC_SIZE) { + /* + * No data (0 byte) have been sent by sadc. + * This is probably because no activities have been collected + * ("Requested activities not available"). In this case, don't + * display an error message: Exit now. + */ + exit(3); + } print_read_error(INCONSISTENT_INPUT_DATA); } -- 2.40.0