From: Sebastien GODARD Date: Sun, 19 Apr 2020 06:36:04 +0000 (+0200) Subject: sar: Don't display "Inconsistent input data" when no activities are X-Git-Tag: v12.3.3~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=89cbc1df2bcd274d0231860fdafcc2bc7468e156;p=sysstat 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 --- 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); }