Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package sysstat for openSUSE:Factory checked in at 2022-11-13 18:08:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sysstat (Old) and /work/SRC/openSUSE:Factory/.sysstat.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysstat" Sun Nov 13 18:08:52 2022 rev:102 rq:1035320 version:12.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/sysstat/sysstat.changes 2022-09-17 20:08:39.136864755 +0200 +++ /work/SRC/openSUSE:Factory/.sysstat.new.1597/sysstat.changes 2022-11-13 18:08:53.423414123 +0100 @@ -1,0 +2,14 @@ +Fri Nov 11 16:18:42 UTC 2022 - David Anes <david.a...@suse.com> + +- Update to version 12.6.1: + * Fix possible overflow in sa_common.c (GHSL-2022-074). + * sa_conv.c: Make size of statistics structures from older sysstat + versions immutable. + * Declare sadc dependency on libsyscom.a. + * Fix gcc v11.2 warnings. + * Various cosmetic fixes. + * sar: Remove `-I int_list` from man-page and help. + * Consolidate systemctl commands in README file. + * Remove whitespace characters at the end of lines. + +------------------------------------------------------------------- Old: ---- sysstat-12.6.0.tar.gz New: ---- sysstat-12.6.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sysstat.spec ++++++ --- /var/tmp/diff_new_pack.xSxPBJ/_old 2022-11-13 18:08:54.283419120 +0100 +++ /var/tmp/diff_new_pack.xSxPBJ/_new 2022-11-13 18:08:54.291419167 +0100 @@ -17,7 +17,7 @@ Name: sysstat -Version: 12.6.0 +Version: 12.6.1 Release: 0 Summary: Sar and Iostat Commands for Linux License: GPL-2.0-or-later ++++++ sysstat-12.6.0.tar.gz -> sysstat-12.6.1.tar.gz ++++++ ++++ 7994 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/CHANGES new/sysstat-12.6.1/CHANGES --- old/sysstat-12.6.0/CHANGES 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/CHANGES 2022-11-06 16:03:27.000000000 +0100 @@ -1,5 +1,17 @@ Changes: +2022/11/06: Version 12.6.1 - Sebastien Godard (sysstat <at> orange.fr) + * Fix possible overflow in sa_common.c (GHSL-2022-074). + * sa_conv.c: Make size of statistics structures from older sysstat + versions immutable. + * [Bernhard M. Wiedemann]: Declare sadc dependency on libsyscom.a. + * [Steve Kay]: Fix gcc v11.2 warnings. + * [Steve Kay]: Various cosmetic fixes. + * [Jan Christoph Uhde]: sar: Remove `-I int_list` from man-page and + help. + * [Frank Dana]: Consolidate systemctl commands in README file. + * [Rong Tao]: Remove whitespace characters at the end of lines. + 2022/05/29: Version 12.6.0 - Sebastien Godard (sysstat <at> orange.fr) * sar: Fix maximum value for A_IRQ activity. * sar/sadf: A_NET_SOFT: Add new metric softnet network backlog. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/FAQ.md new/sysstat-12.6.1/FAQ.md --- old/sysstat-12.6.0/FAQ.md 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/FAQ.md 2022-11-06 16:03:27.000000000 +0100 @@ -319,8 +319,8 @@ with static graphs), sarjitsu (a more sophisticated application producing dynamic visualizations based on Grafana), sarvant, sar2gp, loadgraph, SysStat Charts, sarplot... -[rrd.cgi](http://haroon.sis.utoronto.ca/rrd/scripts/) is a perl front-end for -rrdtool and can be used to make some graphs (see a demo [here](http://haroon.sis.utoronto.ca/perl/rrd.cgi/sar_stats/)). +[rrd.cgi](http://haroon.easi.utoronto.ca/rrd/scripts/) is a perl front-end for +rrdtool and can be used to make some graphs (see a demo [here](http://haroon.easi.utoronto.ca/perl/rrd.cgi/sar_stats/)). [sysstat_mail_report](https://github.com/desbma/sysstat_mail_report) is a script that automatically generates and sends an email report every day/week/month with graphs generated from sysstat data. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/README.md new/sysstat-12.6.1/README.md --- old/sysstat-12.6.0/README.md 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/README.md 2022-11-06 16:03:27.000000000 +0100 @@ -98,8 +98,7 @@ On recent versions, systemd is used instead of cron. You may need to enable and start the sysstat service: ``` -$ sudo systemctl enable sysstat -$ sudo systemctl start sysstat +$ sudo systemctl enable --now sysstat ``` #### Install from Ubuntu @@ -146,7 +145,7 @@ $ ./configure --enable-install-cron ``` -Enter `./configure --help` to display all possible options. +Enter `./configure --help` to display all possible options. Note: There is another way to configure sysstat instead of entering `./configure`: This is the **Interactive Configuration script** (_iconfig_) which will ask you for the value of the main sysstat variables and parameters. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/cifsiostat.c new/sysstat-12.6.1/cifsiostat.c --- old/sysstat-12.6.0/cifsiostat.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/cifsiostat.c 2022-11-06 16:03:27.000000000 +0100 @@ -141,6 +141,7 @@ return NULL; while (*clist != NULL) { + c = *clist; if ((i = strcmp(c->name, name)) == 0) { /* cifs found in list */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/common.c new/sysstat-12.6.1/common.c --- old/sysstat-12.6.0/common.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/common.c 2022-11-06 16:03:27.000000000 +0100 @@ -434,6 +434,29 @@ return 0; } +/* + * ************************************************************************** + * Check if the multiplication of the 3 values may be greater than UINT_MAX. + * + * IN: + * @val1 First value. + * @val2 Second value. + * @val3 Third value. + *************************************************************************** + */ +void check_overflow(unsigned int val1, unsigned int val2, + unsigned int val3) +{ + if ((unsigned long long) val1 * (unsigned long long) val2 * + (unsigned long long) val3 > UINT_MAX) { +#ifdef DEBUG + fprintf(stderr, "%s: Overflow detected (%llu). Aborting...\n", + __FUNCTION__, (unsigned long long) val1 * (unsigned long long) val2 * + (unsigned long long) val3); +#endif + exit(4); + } +} #ifndef SOURCE_SADC /* @@ -948,6 +971,7 @@ return (NULL); while (persist_names[++i]) { + /* Get absolute path for current persistent name */ link = get_persistent_name_path(persist_names[i]); if (!link) @@ -1660,4 +1684,5 @@ return 0; } + #endif /* SOURCE_SADC undefined */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/common.h new/sysstat-12.6.1/common.h --- old/sysstat-12.6.0/common.h 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/common.h 2022-11-06 16:03:27.000000000 +0100 @@ -256,6 +256,8 @@ (char *, unsigned long long *, unsigned int *); int check_dir (char *); +void check_overflow + (unsigned int, unsigned int, unsigned int); #ifndef SOURCE_SADC int count_bits diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/configure.in new/sysstat-12.6.1/configure.in --- old/sysstat-12.6.0/configure.in 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/configure.in 2022-11-06 16:03:27.000000000 +0100 @@ -4,7 +4,7 @@ # Modified by Sebastien Godard (sysstat <at> orange.fr) # Initialization of $PACKAGE_VERSION and $PACKAGE_NAME variables -AC_INIT(sysstat, 12.6.0) +AC_INIT(sysstat, 12.6.1) # Ensure that a recent enough version of Autoconf is being used AC_PREREQ(2.53) @@ -379,7 +379,7 @@ fi AC_MSG_RESULT($SA_DIR) if test ! -d $SA_DIR; then - echo "INFO: Directory ${SA_DIR} will be created during installation stage." + echo "INFO: Directory ${SA_DIR} will be created during installation stage." fi AC_SUBST(SA_DIR) @@ -404,7 +404,7 @@ fi AC_MSG_RESULT($SYSCONFIG_DIR) if test ! -d $SYSCONFIG_DIR; then - echo "INFO: Directory ${SYSCONFIG_DIR} will be created during installation stage." + echo "INFO: Directory ${SYSCONFIG_DIR} will be created during installation stage." fi AC_SUBST(SYSCONFIG_DIR) @@ -436,15 +436,15 @@ AC_CHECK_LIB(intl, gettext, LFINTL="-lintl") AC_SUBST(LFINTL) LACKING_GETTEXT="n" -if test $AUX_NLS = "yes" && test x$MSGFMT != x"msgfmt"; then +if test $AUX_NLS = "yes" && test x$MSGFMT != x"msgfmt"; then echo "WARNING: msgfmt command not found!" LACKING_GETTEXT="y" fi -if test $AUX_NLS = "yes" && test x$XGETTEXT != x"xgettext"; then +if test $AUX_NLS = "yes" && test x$XGETTEXT != x"xgettext"; then echo "WARNING: xgettext command not found!" LACKING_GETTEXT="y" fi -if test $AUX_NLS = "yes" && test x$MSGMERGE != x"msgmerge"; then +if test $AUX_NLS = "yes" && test x$MSGMERGE != x"msgmerge"; then echo "WARNING: msgmerge command not found!" LACKING_GETTEXT="y" fi @@ -475,7 +475,7 @@ # Data history to keep by sa2 AC_MSG_CHECKING(number of daily data files to keep) -AC_ARG_VAR([history],[number of daily data files to keep (default value is 7)]) +AC_ARG_VAR([history],[number of daily data files to keep (default value is 7)]) if test x$history = x""; then HISTORY=7 else @@ -521,9 +521,9 @@ AC_MSG_RESULT($MAN_GROUP) else grep ^$man_group: /etc/group >/dev/null 2>&1 - if test $? = 1; then + if test $? = 1; then MAN_GROUP=$GRP - AC_MSG_RESULT($MAN_GROUP) + AC_MSG_RESULT($MAN_GROUP) echo "WARNING: Group ${man_group} not found: Using ${GRP} instead" else MAN_GROUP=$man_group @@ -579,14 +579,14 @@ # Start crontab AC_MSG_CHECKING(whether cron should start sar automatically) -AC_ARG_ENABLE(install-cron, +AC_ARG_ENABLE(install-cron, AC_HELP_STRING([--enable-install-cron], [install a crontab to start sar]), INSTALL_CRON=$enableval,INSTALL_CRON=n) if test $INSTALL_CRON != "yes"; then INSTALL_CRON=n AUX_CRON=no -else +else INSTALL_CRON=y AUX_CRON=yes fi @@ -595,7 +595,7 @@ # Crontab owner CUSR="root" -if test $INSTALL_CRON = "y"; then +if test $INSTALL_CRON = "y"; then AC_MSG_CHECKING(crontab owner) AC_ARG_VAR([cron_owner],[crontab owner]) if test x$cron_owner = x""; then @@ -607,17 +607,17 @@ CRON_OWNER=$CUSR; AC_MSG_RESULT($CRON_OWNER) echo "WARNING: User ${cron_owner} not found: Using ${CUSR} instead." - else + else CRON_OWNER=$cron_owner AC_MSG_RESULT($CRON_OWNER) fi fi echo "INFO: Crontab for ${CRON_OWNER} will be saved in current directory if necessary" - if test $CRON_OWNER = "root"; then + if test $CRON_OWNER = "root"; then SU_C_OWNER="" QUOTE="" REM_CHOWN="# REM_CHOWN" - else + else SU_C_OWNER="su $CRON_OWNER -c " QUOTE=\" # " (ignore this line) @@ -653,14 +653,14 @@ # Check whether sadc should collect all possible activities AC_MSG_CHECKING(whether sadc should collect all possible activities) - AC_ARG_ENABLE(collect-all, + AC_ARG_ENABLE(collect-all, AC_HELP_STRING([--enable-collect-all], [collect all possible activities]), COLLECT_ALL=$enableval,COLLECT_ALL=n) if test $COLLECT_ALL != "yes"; then COLLECT_ALL="" AUX_COLL=no - else + else COLLECT_ALL="-S XALL" AUX_COLL=yes fi @@ -731,7 +731,7 @@ # Check whether debug mode should be activated AC_MSG_CHECKING(whether debug mode should be activated) -AC_ARG_ENABLE(debuginfo, +AC_ARG_ENABLE(debuginfo, AC_HELP_STRING([--enable-debuginfo], [enable debug output (--debuginfo option)]), WITH_DEBUG=yes ; DFLAGS="$DFLAGS -DDEBUG" , WITH_DEBUG=no) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/contrib/isag/isag new/sysstat-12.6.1/contrib/isag/isag --- old/sysstat-12.6.0/contrib/isag/isag 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/contrib/isag/isag 2022-11-06 16:03:27.000000000 +0100 @@ -398,7 +398,7 @@ # sar switches as names for object-instances (final and current) set prog_swtch [list b B q r R S u v w W] -# maximal and current values for each graph indexed by sar switch i.e. for cpu +# maximal and current values for each graph indexed by sar switch i.e. for cpu # is index u not -u foreach l $prog_swtch { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/contrib/isag/isag.1 new/sysstat-12.6.1/contrib/isag/isag.1 --- old/sysstat-12.6.0/contrib/isag/isag.1 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/contrib/isag/isag.1 2022-11-06 16:03:27.000000000 +0100 @@ -162,16 +162,16 @@ Default path is: \fI/var/log/sa\fR .Ip "\-c config_file" 4 .IX Item "-c config_file" -Specify the configuration file used by the \fIisag\fR command. +Specify the configuration file used by the \fIisag\fR command. The contents of this file may depend on \fIisag\fR version number. Default config file is: \fI$HOME/.isag.cfg\fR. .Ip "\-ght gr_height" 4 .IX Item "-ght gr_height" -Specify the height of the chart area. +Specify the height of the chart area. Default value is: \fI400\fR. .Ip "\-gwd gr_width" 4 .IX Item "-gwd gr_width" -Specify the width of the chart area. +Specify the width of the chart area. Default value is: \fI720\fR. .SH "CONFIG FILE" .IX Header "CONFIG FILE" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/count.c new/sysstat-12.6.1/count.c --- old/sysstat-12.6.0/count.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/count.c 2022-11-06 16:03:27.000000000 +0100 @@ -208,6 +208,7 @@ while ((fgets(line, INTERRUPTS_LINE + 11 * cpu_nr , fp) != NULL) && (irq < max_nr_irqcpu)) { + p = strcspn(line, ":"); if ((p > 0) && (p < 16)) { irq++; @@ -256,6 +257,7 @@ * the number of lines... */ while (fgets(line, sizeof(line), fp) != NULL) { + if (!count_part) { i = sscanf(line, "%*d %*d %s %lu %*u %*u %*u %lu", dev_name, &rd_ios, &wr_ios); @@ -473,7 +475,7 @@ continue; sscanf(pos2 + 1, "%127s", type); - if(strcmp(type, "autofs") == 0) + if (strcmp(type, "autofs") == 0) continue; /* Read filesystem name and mount point */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/ioconf.c new/sysstat-12.6.1/ioconf.c --- old/sysstat-12.6.0/ioconf.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/ioconf.c 2022-11-06 16:03:27.000000000 +0100 @@ -107,6 +107,7 @@ } while (val > 0) { + *--p = syms[j = val % radix]; val /= radix; if (nozero && (j == 0)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/iostat.c new/sysstat-12.6.1/iostat.c --- old/sysstat-12.6.0/iostat.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/iostat.c 2022-11-06 16:03:27.000000000 +0100 @@ -300,6 +300,7 @@ return NULL; while (*dlist != NULL) { + d = *dlist; if ((i = strcmp(d->name, name)) == 0) { /* Device found in list */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/man/sadf.in new/sysstat-12.6.1/man/sadf.in --- old/sysstat-12.6.0/man/sadf.in 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/man/sadf.in 2022-11-06 16:03:27.000000000 +0100 @@ -34,7 +34,7 @@ uses the standard system activity daily data file. It is also possible to enter .BR "-1" ", " "-2 " "etc. as an argument to " "sadf" -to display data of that days ago. For example, +to display data of that days ago. For example, .B -1 will point at the standard system activity file of yesterday. .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/man/sar.in new/sysstat-12.6.1/man/sar.in --- old/sysstat-12.6.0/man/sar.in 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/man/sar.in 2022-11-06 16:03:27.000000000 +0100 @@ -1,5 +1,5 @@ .\" sar manual page - (C) 1999-2022 Sebastien Godard (sysstat <at> orange.fr) -.TH SAR 1 "MARCH 2022" Linux "Linux User's Manual" -*- nroff -*- +.TH SAR 1 "SEPTEMBER 2022" Linux "Linux User's Manual" -*- nroff -*- .SH NAME sar \- Collect, report, or save system activity information. @@ -1591,7 +1591,7 @@ ranges of values. .TP .B S_COLORS_SGR -Specify the colors and other attributes used to display statistics on the terminal. +Specify the colors and other attributes used to display statistics on the terminal. Its value is a colon-separated list of capabilities that defaults to .BR "C=33;22:H=31;1:I=32;22:M=35;1:N=34;1:R=31;22:Z=34;22" "." Supported capabilities are: @@ -1644,7 +1644,7 @@ .B sar -u 2 5 Report CPU utilization for each 2 seconds. 5 lines are displayed. .TP -.B sar -I 14 -o int14.file 2 10 +.B sar -I --int=14 -o int14.file 2 10 Report statistics on IRQ 14 for each 2 seconds. 10 lines are displayed. Data are stored in a file called .IR "int14.file" "." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/man/sysstat.in new/sysstat-12.6.1/man/sysstat.in --- old/sysstat-12.6.0/man/sysstat.in 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/man/sysstat.in 2022-11-06 16:03:27.000000000 +0100 @@ -68,7 +68,7 @@ .RB "To figure out how a " "HISTORY" of 28 is applied in practice, we need to consider that the .BR "sa2 " "script that issues the " "find " "command to remove the" -old files typically runs just before mid-night on a given system, and since +old files typically runs just before midnight on a given system, and since the first record from .B sadc can also be written to the previous day's data file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/man/tapestat.1 new/sysstat-12.6.1/man/tapestat.1 --- old/sysstat-12.6.0/man/tapestat.1 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/man/tapestat.1 2022-11-06 16:03:27.000000000 +0100 @@ -34,7 +34,7 @@ .B tapestat report provides statistics for each tape drive connected to the system. The following data are displayed: -.IP r/s +.IP r/s The number of reads issued expressed as the number per second averaged over the interval. .IP w/s The number of writes issued expressed as the number per second averaged over the interval. @@ -107,7 +107,7 @@ command will never show a percentage value more than 999). If rewinding a tape takes 40 seconds where the interval time is 5 seconds the %Oa value would show as 0 in the intervals before the rewind completed and then show as approximately -800 percent when the rewind completes. +800 percent when the rewind completes. Similar values will be observed for %Rd and %Wr if a tape drive stops reading or writing and then restarts (that is it stopped streaming). In such a case you may see the r/s or w/s drop to zero and the %Rd/%Wr value could be higher than 100 when reading or writing continues diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/mpstat.c new/sysstat-12.6.1/mpstat.c --- old/sysstat-12.6.0/mpstat.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/mpstat.c 2022-11-06 16:03:27.000000000 +0100 @@ -290,6 +290,7 @@ int j; while (c < last) { + st_irq_i = st_irq[curr] + c + 1; st_irq_j = st_irq[!curr] + c + 1; st_irq_i->irq_nr = st_irq_j->irq_nr; @@ -1856,8 +1857,10 @@ * Parse header line to see which CPUs are online */ while (fgets(line, INTERRUPTS_LINE + 11 * cpu_nr, fp) != NULL) { + next = line; while (((cp = strstr(next, "CPU")) != NULL) && (index < cpu_nr)) { + cpu = strtol(cp + 3, &next, 10); if (cpu >= cpu_nr) break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/nls/README-nls new/sysstat-12.6.1/nls/README-nls --- old/sysstat-12.6.0/nls/README-nls 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/nls/README-nls 2022-11-06 16:03:27.000000000 +0100 @@ -36,7 +36,7 @@ Here is a complete example with iostat: $ export LANG=en_US -$ iostat -V +$ iostat -V sysstat version 5.1.4 (C) Sebastien Godard Usage: iostat [ options... ] [ <interval> [ <count> ] ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/nls/da.po new/sysstat-12.6.1/nls/da.po --- old/sysstat-12.6.0/nls/da.po 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/nls/da.po 2022-11-06 16:03:27.000000000 +0100 @@ -267,7 +267,7 @@ "\t\tStatistik for afbrydelser [A_IRQ]\n" # clock ? tog fra KDE ksysguard (klok) -# øjeblikkelig klokfrekvens / "CPU-klokfrevens lige nu:"/"CPUens +# øjeblikkelig klokfrekvens / "CPU-klokfrevens lige nu:"/"CPUens # klokfrekvens lige nu # spændingsinddata eller spændingsindgange. #: sar.c:155 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/pcp_def_metrics.c new/sysstat-12.6.1/pcp_def_metrics.c --- old/sysstat-12.6.0/pcp_def_metrics.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/pcp_def_metrics.c 2022-11-06 16:03:27.000000000 +0100 @@ -60,6 +60,7 @@ /* Create instance for each interrupt for the current CPU */ while (list != NULL) { + snprintf(buf, sizeof(buf), "%s::cpu%d", list->item_name, cpu); buf[sizeof(buf) - 1] = '\0'; @@ -319,6 +320,7 @@ /* Create instances and metrics for each interrupts for CPU "all" */ while (list != NULL) { + if (!strcmp(list->item_name, K_LOWERSUM)) { /* * Create metric for interrupt "sum" for CPU "all". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/pidstat.c new/sysstat-12.6.1/pidstat.c --- old/sysstat-12.6.0/pidstat.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/pidstat.c 2022-11-06 16:03:27.000000000 +0100 @@ -138,6 +138,7 @@ struct st_pid *p; while (*plist != NULL) { + p = *plist; if (!p->exist || force) { *plist = p->next; @@ -247,6 +248,7 @@ * other TIDs. */ while (*plist != NULL) { + p = *plist; if (!p->tgid && (p->pid == pid)) /* PID found in list */ @@ -266,6 +268,7 @@ * following its TGID. */ while (*plist != NULL) { + p = *plist; if (p->pid == tgid) { /* TGID found in list */ @@ -282,6 +285,7 @@ plist = &(p->next); while (*plist != NULL) { + p = *plist; if ((p->tgid == tgid_p) && (p->pid == pid)) /* TID found in list */ @@ -605,6 +609,7 @@ return 1; while ((state < 3) && (fgets(line, sizeof(line), fp) != NULL)) { + switch (state) { case 0: if (strstr(line, "[stack]")) { @@ -882,6 +887,7 @@ return; while ((drp = __readdir(dir)) != NULL) { + if (!isdigit(drp->d_name[0])) { continue; } @@ -951,6 +957,7 @@ /* Get directory entries */ while ((drp = __readdir(dir)) != NULL) { + if (!isdigit(drp->d_name[0])) { continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/rd_sensors.c new/sysstat-12.6.1/rd_sensors.c --- old/sysstat-12.6.0/rd_sensors.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/rd_sensors.c 2022-11-06 16:03:27.000000000 +0100 @@ -68,8 +68,10 @@ memset(st_pwr_fan, 0, STATS_PWR_FAN_SIZE); while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { + i = 0; while ((feature = sensors_get_features(chip, &i))) { + if (feature->type == SENSORS_FEATURE_FAN) { j = 0; if (fan_read + 1 > nr_alloc) @@ -78,6 +80,7 @@ sensors_snprintf_chip_name(st_pwr_fan_i->device, MAX_SENSORS_DEV_LEN, chip); while ((sub = sensors_get_all_subfeatures(chip, feature, &j))) { + if ((sub->type == SENSORS_SUBFEATURE_FAN_INPUT) && (sub->flags & SENSORS_MODE_R)) { if (sensors_get_value(chip, sub->number, &st_pwr_fan_i->rpm)) { @@ -130,8 +133,10 @@ memset(st_pwr_temp, 0, STATS_PWR_TEMP_SIZE); while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { + i = 0; while ((feature = sensors_get_features(chip, &i))) { + if (feature->type == SENSORS_FEATURE_TEMP) { j = 0; if (temp_read + 1 > nr_alloc) @@ -140,6 +145,7 @@ sensors_snprintf_chip_name(st_pwr_temp_i->device, MAX_SENSORS_DEV_LEN, chip); while ((sub = sensors_get_all_subfeatures(chip, feature, &j))) { + if ((sub->type == SENSORS_SUBFEATURE_TEMP_INPUT) && (sub->flags & SENSORS_MODE_R)) { if (sensors_get_value(chip, sub->number, &st_pwr_temp_i->temp)) { @@ -197,8 +203,10 @@ memset(st_pwr_in, 0, STATS_PWR_IN_SIZE); while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { + i = 0; while ((feature = sensors_get_features(chip, &i))) { + if (feature->type == SENSORS_FEATURE_IN) { j = 0; if (in_read + 1 > nr_alloc) @@ -207,6 +215,7 @@ sensors_snprintf_chip_name(st_pwr_in_i->device, MAX_SENSORS_DEV_LEN, chip); while ((sub = sensors_get_all_subfeatures(chip, feature, &j))) { + if ((sub->type == SENSORS_SUBFEATURE_IN_INPUT) && (sub->flags & SENSORS_MODE_R)) { if (sensors_get_value(chip, sub->number, &st_pwr_in_i->in)) { @@ -254,8 +263,10 @@ int i; while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { + i = 0; while ((feature = sensors_get_features(chip, &i))) { + if (feature->type == type) { count++; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/rd_stats.c new/sysstat-12.6.1/rd_stats.c --- old/sysstat-12.6.0/rd_stats.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/rd_stats.c 2022-11-06 16:03:27.000000000 +0100 @@ -210,9 +210,11 @@ * Parse header line to see which CPUs are online */ while (fgets(line, INTERRUPTS_LINE + 11 * cpu_nr, fp) != NULL) { + next = line; while (((cp = strstr(next, "CPU")) != NULL) && (index < cpu_nr)) { cpu = strtol(cp + 3, &next, 10); + if (cpu + 2 > nr_alloc) { rc = -1; goto out; @@ -570,6 +572,7 @@ len = strlen(str); while (i < len - 3) { + if ((str[i] == '\\') && (str[i + 1] >= '0') && (str[i + 1] <= '3') && (str[i + 2] >= '0') && (str[i + 2] <= '7') && @@ -2625,7 +2628,7 @@ continue; sscanf(pos2 + 1, "%127s", type); - if(strcmp(type, "autofs") == 0) + if (strcmp(type, "autofs") == 0) continue; /* Read current filesystem name */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sa_common.c new/sysstat-12.6.1/sa_common.c --- old/sysstat-12.6.0/sa_common.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sa_common.c 2022-11-06 16:03:27.000000000 +0100 @@ -427,6 +427,7 @@ char *buffer = (char *) buf; while (nr_bytes > 0) { + block = write(fd, &buffer[offset], nr_bytes); if (block < 0) { @@ -458,7 +459,14 @@ int i, j; for (i = 0; i < NR_ACT; i++) { + if (act[i]->nr_ini > 0) { + + /* Look for a possible overflow */ + check_overflow((unsigned int) act[i]->msize, + (unsigned int) act[i]->nr_ini, + (unsigned int) act[i]->nr2); + for (j = 0; j < 3; j++) { SREALLOC(act[i]->buf[j], void, (size_t) act[i]->msize * (size_t) act[i]->nr_ini * (size_t) act[i]->nr2); @@ -522,6 +530,10 @@ while (nr_realloc < nr_min); } + /* Look for a possible overflow */ + check_overflow((unsigned int) a->msize, (unsigned int) nr_realloc, + (unsigned int) a->nr2); + for (j = 0; j < 3; j++) { SREALLOC(a->buf[j], void, (size_t) a->msize * nr_realloc * (size_t) a->nr2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sa_conv.c new/sysstat-12.6.1/sa_conv.c --- old/sysstat-12.6.0/sa_conv.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sa_conv.c 2022-11-06 16:03:27.000000000 +0100 @@ -221,14 +221,14 @@ file_hdr->sa_day = f_hdr_2173->sa_day; file_hdr->sa_month = f_hdr_2173->sa_month; file_hdr->sa_sizeof_long = f_hdr_2173->sa_sizeof_long; - strncpy(file_hdr->sa_sysname, f_hdr_2173->sa_sysname, UTSNAME_LEN); - file_hdr->sa_sysname[UTSNAME_LEN - 1] = '\0'; - strncpy(file_hdr->sa_nodename, f_hdr_2173->sa_nodename, UTSNAME_LEN); - file_hdr->sa_nodename[UTSNAME_LEN - 1] = '\0'; - strncpy(file_hdr->sa_release, f_hdr_2173->sa_release, UTSNAME_LEN); - file_hdr->sa_release[UTSNAME_LEN - 1] = '\0'; - strncpy(file_hdr->sa_machine, f_hdr_2173->sa_machine, UTSNAME_LEN); - file_hdr->sa_machine[UTSNAME_LEN - 1] = '\0'; + strncpy(file_hdr->sa_sysname, f_hdr_2173->sa_sysname, sizeof(file_hdr->sa_sysname)); + file_hdr->sa_sysname[sizeof(file_hdr->sa_sysname) - 1] = '\0'; + strncpy(file_hdr->sa_nodename, f_hdr_2173->sa_nodename, sizeof(file_hdr->sa_nodename)); + file_hdr->sa_nodename[sizeof(file_hdr->sa_nodename) - 1] = '\0'; + strncpy(file_hdr->sa_release, f_hdr_2173->sa_release, sizeof(file_hdr->sa_release)); + file_hdr->sa_release[sizeof(file_hdr->sa_release) - 1] = '\0'; + strncpy(file_hdr->sa_machine, f_hdr_2173->sa_machine, sizeof(file_hdr->sa_machine)); + file_hdr->sa_machine[sizeof(file_hdr->sa_machine) - 1] = '\0'; *vol_act_nr = f_hdr_2173->sa_vol_act_nr; } @@ -552,7 +552,8 @@ strcpy(sic->irq_name, K_LOWERSUM); } else { - sprintf(sic->irq_name, "%d", i - 1); + snprintf(sic->irq_name, sizeof(sic->irq_name), "%d", i - 1 > NR2_MAX ? NR2_MAX : i - 1); + sic->irq_name[sizeof(sic->irq_name) - 1] = '\0'; } } } @@ -570,7 +571,8 @@ strcpy(sic->irq_name, K_LOWERSUM); } else { - sprintf(sic->irq_name, "%d", i - 1); + snprintf(sic->irq_name, sizeof(sic->irq_name), "%d", i - 1 > NR2_MAX ? NR2_MAX : i - 1); + sic->irq_name[sizeof(sic->irq_name) - 1] = '\0'; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sa_conv.h new/sysstat-12.6.1/sa_conv.h --- old/sysstat-12.6.0/sa_conv.h 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sa_conv.h 2022-11-06 16:03:27.000000000 +0100 @@ -11,6 +11,8 @@ * 2171: v9.1.6 -> 10.2.1 * 2173: 10.3.1 -> 11.6.x */ +#define UTSNAME_LEN_2171 65 + struct file_header_2171 { unsigned long sa_ust_time __attribute__ ((aligned (8))); unsigned int sa_act_nr __attribute__ ((aligned (8))); @@ -18,10 +20,10 @@ unsigned char sa_month; unsigned char sa_year; char sa_sizeof_long; - char sa_sysname[UTSNAME_LEN]; - char sa_nodename[UTSNAME_LEN]; - char sa_release[UTSNAME_LEN]; - char sa_machine[UTSNAME_LEN]; + char sa_sysname[UTSNAME_LEN_2171]; + char sa_nodename[UTSNAME_LEN_2171]; + char sa_release[UTSNAME_LEN_2171]; + char sa_machine[UTSNAME_LEN_2171]; }; #define FILE_HEADER_SIZE_2171 (sizeof(struct file_header_2171)) @@ -29,6 +31,8 @@ #define FILE_HEADER_2171_UL_NR 1 #define FILE_HEADER_2171_U_NR 1 +#define UTSNAME_LEN_2173 65 + struct file_header_2173 { unsigned long sa_ust_time __attribute__ ((aligned (8))); unsigned int sa_last_cpu_nr __attribute__ ((aligned (8))); @@ -38,10 +42,10 @@ unsigned char sa_month; unsigned char sa_year; char sa_sizeof_long; - char sa_sysname[UTSNAME_LEN]; - char sa_nodename[UTSNAME_LEN]; - char sa_release[UTSNAME_LEN]; - char sa_machine[UTSNAME_LEN]; + char sa_sysname[UTSNAME_LEN_2173]; + char sa_nodename[UTSNAME_LEN_2173]; + char sa_release[UTSNAME_LEN_2173]; + char sa_machine[UTSNAME_LEN_2173]; }; #define FILE_HEADER_2173_ULL_NR 0 @@ -199,69 +203,79 @@ }; /* Structure stats_net_dev for ACTIVITY_MAGIC_BASE format */ +#define MAX_IFACE_LEN_8A 16 + struct stats_net_dev_8a { - unsigned long rx_packets __attribute__ ((aligned (8))); - unsigned long tx_packets __attribute__ ((aligned (8))); - unsigned long rx_bytes __attribute__ ((aligned (8))); - unsigned long tx_bytes __attribute__ ((aligned (8))); - unsigned long rx_compressed __attribute__ ((aligned (8))); - unsigned long tx_compressed __attribute__ ((aligned (8))); - unsigned long multicast __attribute__ ((aligned (8))); - char interface[MAX_IFACE_LEN] __attribute__ ((aligned (8))); + unsigned long rx_packets __attribute__ ((aligned (8))); + unsigned long tx_packets __attribute__ ((aligned (8))); + unsigned long rx_bytes __attribute__ ((aligned (8))); + unsigned long tx_bytes __attribute__ ((aligned (8))); + unsigned long rx_compressed __attribute__ ((aligned (8))); + unsigned long tx_compressed __attribute__ ((aligned (8))); + unsigned long multicast __attribute__ ((aligned (8))); + char interface[MAX_IFACE_LEN_8A] __attribute__ ((aligned (8))); }; /* Structure stats_net_dev for ACTIVITY_MAGIC_BASE + 1 format */ +#define MAX_IFACE_LEN_8B 16 + struct stats_net_dev_8b { - unsigned long long rx_packets __attribute__ ((aligned (16))); - unsigned long long tx_packets __attribute__ ((aligned (16))); - unsigned long long rx_bytes __attribute__ ((aligned (16))); - unsigned long long tx_bytes __attribute__ ((aligned (16))); - unsigned long long rx_compressed __attribute__ ((aligned (16))); - unsigned long long tx_compressed __attribute__ ((aligned (16))); - unsigned long long multicast __attribute__ ((aligned (16))); - char interface[MAX_IFACE_LEN] __attribute__ ((aligned (16))); + unsigned long long rx_packets __attribute__ ((aligned (16))); + unsigned long long tx_packets __attribute__ ((aligned (16))); + unsigned long long rx_bytes __attribute__ ((aligned (16))); + unsigned long long tx_bytes __attribute__ ((aligned (16))); + unsigned long long rx_compressed __attribute__ ((aligned (16))); + unsigned long long tx_compressed __attribute__ ((aligned (16))); + unsigned long long multicast __attribute__ ((aligned (16))); + char interface[MAX_IFACE_LEN_8B] __attribute__ ((aligned (16))); }; /* Structure stats_net_dev for ACTIVITY_MAGIC_BASE + 2 format */ +#define MAX_IFACE_LEN_8C 16 + struct stats_net_dev_8c { - unsigned long long rx_packets __attribute__ ((aligned (16))); - unsigned long long tx_packets __attribute__ ((aligned (16))); - unsigned long long rx_bytes __attribute__ ((aligned (16))); - unsigned long long tx_bytes __attribute__ ((aligned (16))); - unsigned long long rx_compressed __attribute__ ((aligned (16))); - unsigned long long tx_compressed __attribute__ ((aligned (16))); - unsigned long long multicast __attribute__ ((aligned (16))); - unsigned int speed __attribute__ ((aligned (16))); - char interface[MAX_IFACE_LEN] __attribute__ ((aligned (4))); - char duplex; + unsigned long long rx_packets __attribute__ ((aligned (16))); + unsigned long long tx_packets __attribute__ ((aligned (16))); + unsigned long long rx_bytes __attribute__ ((aligned (16))); + unsigned long long tx_bytes __attribute__ ((aligned (16))); + unsigned long long rx_compressed __attribute__ ((aligned (16))); + unsigned long long tx_compressed __attribute__ ((aligned (16))); + unsigned long long multicast __attribute__ ((aligned (16))); + unsigned int speed __attribute__ ((aligned (16))); + char interface[MAX_IFACE_LEN_8C] __attribute__ ((aligned (4))); + char duplex; }; /* Structure stats_net_edev for ACTIVITY_MAGIC_BASE format */ +#define MAX_IFACE_LEN_8A 16 + struct stats_net_edev_8a { - unsigned long collisions __attribute__ ((aligned (8))); - unsigned long rx_errors __attribute__ ((aligned (8))); - unsigned long tx_errors __attribute__ ((aligned (8))); - unsigned long rx_dropped __attribute__ ((aligned (8))); - unsigned long tx_dropped __attribute__ ((aligned (8))); - unsigned long rx_fifo_errors __attribute__ ((aligned (8))); - unsigned long tx_fifo_errors __attribute__ ((aligned (8))); - unsigned long rx_frame_errors __attribute__ ((aligned (8))); - unsigned long tx_carrier_errors __attribute__ ((aligned (8))); - char interface[MAX_IFACE_LEN] __attribute__ ((aligned (8))); + unsigned long collisions __attribute__ ((aligned (8))); + unsigned long rx_errors __attribute__ ((aligned (8))); + unsigned long tx_errors __attribute__ ((aligned (8))); + unsigned long rx_dropped __attribute__ ((aligned (8))); + unsigned long tx_dropped __attribute__ ((aligned (8))); + unsigned long rx_fifo_errors __attribute__ ((aligned (8))); + unsigned long tx_fifo_errors __attribute__ ((aligned (8))); + unsigned long rx_frame_errors __attribute__ ((aligned (8))); + unsigned long tx_carrier_errors __attribute__ ((aligned (8))); + char interface[MAX_IFACE_LEN_8A] __attribute__ ((aligned (8))); }; /* Structure stats_net_edev for ACTIVITY_MAGIC_BASE + 1 format */ +#define MAX_IFACE_LEN_8B 16 + struct stats_net_edev_8b { - unsigned long long collisions __attribute__ ((aligned (16))); - unsigned long long rx_errors __attribute__ ((aligned (16))); - unsigned long long tx_errors __attribute__ ((aligned (16))); - unsigned long long rx_dropped __attribute__ ((aligned (16))); - unsigned long long tx_dropped __attribute__ ((aligned (16))); - unsigned long long rx_fifo_errors __attribute__ ((aligned (16))); - unsigned long long tx_fifo_errors __attribute__ ((aligned (16))); - unsigned long long rx_frame_errors __attribute__ ((aligned (16))); - unsigned long long tx_carrier_errors __attribute__ ((aligned (16))); - char interface[MAX_IFACE_LEN] __attribute__ ((aligned (16))); + unsigned long long collisions __attribute__ ((aligned (16))); + unsigned long long rx_errors __attribute__ ((aligned (16))); + unsigned long long tx_errors __attribute__ ((aligned (16))); + unsigned long long rx_dropped __attribute__ ((aligned (16))); + unsigned long long tx_dropped __attribute__ ((aligned (16))); + unsigned long long rx_fifo_errors __attribute__ ((aligned (16))); + unsigned long long tx_fifo_errors __attribute__ ((aligned (16))); + unsigned long long rx_frame_errors __attribute__ ((aligned (16))); + unsigned long long tx_carrier_errors __attribute__ ((aligned (16))); + char interface[MAX_IFACE_LEN_8B] __attribute__ ((aligned (16))); }; /* Structure stats_net_ip for ACTIVITY_MAGIC_BASE format */ @@ -383,15 +397,17 @@ }; /* Structure stats_filesystem for ACTIVITY_MAGIC_BASE */ +#define MAX_FS_LEN_8A 128 + struct stats_filesystem_8a { - unsigned long long f_blocks __attribute__ ((aligned (16))); - unsigned long long f_bfree __attribute__ ((aligned (16))); - unsigned long long f_bavail __attribute__ ((aligned (16))); - unsigned long long f_files __attribute__ ((aligned (16))); - unsigned long long f_ffree __attribute__ ((aligned (16))); - char fs_name[MAX_FS_LEN] __attribute__ ((aligned (16))); + unsigned long long f_blocks __attribute__ ((aligned (16))); + unsigned long long f_bfree __attribute__ ((aligned (16))); + unsigned long long f_bavail __attribute__ ((aligned (16))); + unsigned long long f_files __attribute__ ((aligned (16))); + unsigned long long f_ffree __attribute__ ((aligned (16))); + char fs_name[MAX_FS_LEN_8A] __attribute__ ((aligned (16))); #define STATS_FILESYSTEM_8A_1_SIZE 160 - char mountp[MAX_FS_LEN]; + char mountp[MAX_FS_LEN_8A]; }; #endif /* _SA_CONV_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sa_wrap.c new/sysstat-12.6.1/sa_wrap.c --- old/sysstat-12.6.0/sa_wrap.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sa_wrap.c 2022-11-06 16:03:27.000000000 +0100 @@ -952,7 +952,7 @@ st_pwr_wghfreq = (struct stats_pwr_wghfreq *) a->_buf0; } } - while(nr_read < 0); + while (nr_read < 0); a->_nr0 = nr_read; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sadc.c new/sysstat-12.6.1/sadc.c --- old/sysstat-12.6.0/sadc.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sadc.c 2022-11-06 16:03:27.000000000 +0100 @@ -360,6 +360,12 @@ } if (IS_COLLECTED(act[i]->options) && (act[i]->nr_ini > 0)) { + + /* Look for a possible overflow */ + check_overflow((unsigned int) act[i]->msize, + (unsigned int) act[i]->nr_ini, + (unsigned int) act[i]->nr2); + /* Allocate structures for current activity (using nr_ini and nr2 results) */ SREALLOC(act[i]->_buf0, void, (size_t) act[i]->msize * (size_t) act[i]->nr_ini * (size_t) act[i]->nr2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sar.c new/sysstat-12.6.1/sar.c --- old/sysstat-12.6.0/sar.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sar.c 2022-11-06 16:03:27.000000000 +0100 @@ -123,7 +123,7 @@ "[ -A ] [ -B ] [ -b ] [ -C ] [ -D ] [ -d ] [ -F [ MOUNT ] ] [ -H ] [ -h ]\n" "[ -p ] [ -r [ ALL ] ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ]\n" "[ -v ] [ -W ] [ -w ] [ -y ] [ -z ]\n" - "[ -I { <int_list> | SUM | ALL } ] [ -P { <cpu_list> | ALL } ]\n" + "[ -I [ SUM | ALL ] ] [ -P { <cpu_list> | ALL } ]\n" "[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ]\n" "[ -q [ <keyword> [,...] | ALL ] ]\n" "[ --dev=<dev_list> ] [ --fs=<fs_list> ] [ --iface=<iface_list> ] " @@ -153,7 +153,7 @@ printf(_("\t-F [ MOUNT ]\n")); printf(_("\t\tFilesystems statistics [A_FS]\n")); printf(_("\t-H\tHugepages utilization statistics [A_HUGE]\n")); - printf(_("\t-I { <int_list> | SUM | ALL }\n" + printf(_("\t-I [ SUM | ALL ]\n" "\t\tInterrupts statistics [A_IRQ]\n")); printf(_("\t-m { <keyword> [,...] | ALL }\n" "\t\tPower management statistics [A_PWR_...]\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/svg_stats.c new/sysstat-12.6.1/svg_stats.c --- old/sysstat-12.6.0/svg_stats.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/svg_stats.c 2022-11-06 16:03:27.000000000 +0100 @@ -174,7 +174,7 @@ *************************************************************************** * Find the min and max values of all the graphs that will be drawn in the * same view. The graphs have their own min and max values in - * spmin[pos...pos+n-1] and spmax[pos...pos+n-1]. + * spmin[pos...pos+n-1] and spmax[pos...pos+n-1]. * * IN: * @pos Position in array for the first graph extrema value. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sysstat-12.6.0.lsm new/sysstat-12.6.1/sysstat-12.6.0.lsm --- old/sysstat-12.6.0/sysstat-12.6.0.lsm 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sysstat-12.6.0.lsm 1970-01-01 01:00:00.000000000 +0100 @@ -1,39 +0,0 @@ -Begin4 -Title: sysstat - the sar, sadf, mpstat, iostat, tapestat, pidstat and cifsiostat commands for Linux -Version: 12.6.0 -Entered-date: 2022-05-29 -Description: The sysstat package contains the sar, sadf, mpstat, iostat, tapestat, - pidstat, cifsiostat and sa tools for Linux. - The sar command collects and reports system activity - information. - The information collected by sar can be saved in a file - in a binary format for future inspection. - The statistics reported by sar concern I/O transfer rates, - paging activity, process-related activities, interrupts, - network activity, memory and swap space utilization, CPU - utilization, kernel activities and TTY statistics, among - others. Both UP and SMP machines are fully supported. - The sadf command is used to display data collected by sar in various - formats (XML, database-friendly, etc.) and to draw graphs (SVG). - The mpstat command reports global and per-processor statistics. - The iostat command reports CPU utilization and I/O statistics - for disks. - The tapestat command reports statistics for tape drives connected - to the system. - The pidstat command reports statistics for Linux tasks (processes). - The cifsiostat command reports I/O statistics for CIFS filesystems. - NB: Send bugs, patches, suggestions and/or questions to - (sysstat [at] orange.fr). - URL: http://pagesperso-orange.fr/sebastien.godard/ -Keywords: system administration, system monitoring, sar, sadf, iostat, mpstat, tapestat, pidstat, system accounting, performance, tuning -Author: syss...@nospam.orange.fr (Sebastien Godard) -Maintained-by: syss...@nospam.orange.fr (Sebastien Godard) -Primary-site: http://pagesperso-orange.fr/sebastien.godard/ - 1450kiB sysstat-12.6.0.tar.gz - 1159kiB sysstat-12.6.0.tar.bz2 - 863kiB sysstat-12.6.0.tar.xz - 1432kiB sysstat-12.6.0-1.src.rpm - 437kiB sysstat-12.6.0-1.x86_64.rpm -Alternate-site: -Copying-policy: GPL -End diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sysstat-12.6.0.spec new/sysstat-12.6.1/sysstat-12.6.0.spec --- old/sysstat-12.6.0/sysstat-12.6.0.spec 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sysstat-12.6.0.spec 1970-01-01 01:00:00.000000000 +0100 @@ -1,83 +0,0 @@ -Summary: SAR, SADF, MPSTAT, IOSTAT, TAPESTAT, PIDSTAT and CIFSIOSTAT for Linux -Name: sysstat -Version: 12.6.0 -Release: 1 -License: GPL -Group: Applications/System -Source0: %{name}-%{version}.tar.gz -URL: http://pagesperso-orange.fr/sebastien.godard/ -Packager: Sebastien Godard <sysstat _at_ orange.fr> -BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(id -u -n) -Requires: gettext - -%description -The sysstat package contains the sar, sadf, mpstat, iostat, tapestat, -pidstat, cifsiostat and sa tools for Linux. -The sar command collects and reports system activity information. -The information collected by sar can be saved in a file in a binary -format for future inspection. The statistics reported by sar concern -I/O transfer rates, paging activity, process-related activities, -interrupts, network activity, memory and swap space utilization, CPU -utilization, kernel activities and TTY statistics, among others. Both -UP and SMP machines are fully supported. -The sadf command may be used to display data collected by sar in -various formats (CSV, XML, etc.) and to draw graphs (SVG). -The iostat command reports CPU utilization and I/O statistics for disks. -The tapestat command reports statistics for tapes connected to the system. -The mpstat command reports global and per-processor statistics. -The pidstat command reports statistics for Linux tasks (processes). -The cifsiostat command reports I/O statistics for CIFS filesystems. - -%define debug_package %{nil} - -%prep -%setup - -%build -# To include cron installation, add options --enable-install-cron and --enable-copy-only -./configure --prefix=%{_prefix} \ - --disable-file-attr \ - sa_lib_dir=%{_libdir}/sa \ - --mandir=%{_mandir} \ - DESTDIR=$RPM_BUILD_ROOT -make - -%install -rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/var/log/sa - -make install - -mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d -install -m 755 sysstat $RPM_BUILD_ROOT/etc/rc.d/init.d/sysstat -mkdir -p $RPM_BUILD_ROOT/etc/sysconfig -install -m 644 sysstat.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/sysstat -install -m 644 sysstat.ioconf $RPM_BUILD_ROOT/etc/sysconfig/sysstat.ioconf -mkdir -p $RPM_BUILD_ROOT/etc/cron.d -install -m 644 cron/sysstat.crond.sample $RPM_BUILD_ROOT/etc/cron.d/sysstat -mkdir -p $RPM_BUILD_ROOT/etc/rc2.d -cd $RPM_BUILD_ROOT/etc/rc2.d && ln -sf ../init.d/sysstat S01sysstat -mkdir -p $RPM_BUILD_ROOT/etc/rc3.d -cd $RPM_BUILD_ROOT/etc/rc3.d && ln -sf ../init.d/sysstat S01sysstat -mkdir -p $RPM_BUILD_ROOT/etc/rc5.d -cd $RPM_BUILD_ROOT/etc/rc5.d && ln -sf ../init.d/sysstat S01sysstat - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(644,root,root,755) -%doc %{_datadir}/doc/sysstat-%{version}/* -%attr(755,root,root) %{_bindir}/* -%attr(755,root,root) %{_libdir}/sa/* -%attr(644,root,root) %{_mandir}/man*/* -%attr(644,root,root) %{_datadir}/locale/*/LC_MESSAGES/sysstat.mo -%attr(755,root,root) %dir /var/log/sa -%attr(755,root,root) /etc/rc.d/init.d/sysstat -%attr(644,root,root) /etc/sysconfig/sysstat -%attr(644,root,root) /etc/sysconfig/sysstat.ioconf -/etc/rc2.d/S01sysstat -/etc/rc3.d/S01sysstat -/etc/rc5.d/S01sysstat -%config(noreplace) %attr(0644,root,root) /etc/cron.d/sysstat - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sysstat-12.6.1.lsm new/sysstat-12.6.1/sysstat-12.6.1.lsm --- old/sysstat-12.6.0/sysstat-12.6.1.lsm 1970-01-01 01:00:00.000000000 +0100 +++ new/sysstat-12.6.1/sysstat-12.6.1.lsm 2022-11-06 16:03:27.000000000 +0100 @@ -0,0 +1,35 @@ +Begin4 +Title: sysstat - the sar, sadf, mpstat, iostat, tapestat, pidstat and cifsiostat commands for Linux +Version: 12.6.1 +Entered-date: 2022-11-06 +Description: The sysstat package contains the sar, sadf, mpstat, iostat, tapestat, + pidstat, cifsiostat and sa tools for Linux. + The sar command collects and reports system activity + information. + The information collected by sar can be saved in a file + in a binary format for future inspection. + The statistics reported by sar concern I/O transfer rates, + paging activity, process-related activities, interrupts, + network activity, memory and swap space utilization, CPU + utilization, kernel activities and TTY statistics, among + others. Both UP and SMP machines are fully supported. + The sadf command is used to display data collected by sar in various + formats (XML, database-friendly, etc.) and to draw graphs (SVG). + The mpstat command reports global and per-processor statistics. + The iostat command reports CPU utilization and I/O statistics + for disks. + The tapestat command reports statistics for tape drives connected + to the system. + The pidstat command reports statistics for Linux tasks (processes). + The cifsiostat command reports I/O statistics for CIFS filesystems. + NB: Send bugs, patches, suggestions and/or questions to + (sysstat [at] orange.fr). + URL: http://pagesperso-orange.fr/sebastien.godard/ +Keywords: system administration, system monitoring, sar, sadf, iostat, mpstat, tapestat, pidstat, system accounting, performance, tuning +Author: syss...@nospam.orange.fr (Sebastien Godard) +Maintained-by: syss...@nospam.orange.fr (Sebastien Godard) +Primary-site: http://pagesperso-orange.fr/sebastien.godard/ + 853kiB sysstat-12.6.1.tar.xz +Alternate-site: +Copying-policy: GPL +End diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sysstat-12.6.1.spec new/sysstat-12.6.1/sysstat-12.6.1.spec --- old/sysstat-12.6.0/sysstat-12.6.1.spec 1970-01-01 01:00:00.000000000 +0100 +++ new/sysstat-12.6.1/sysstat-12.6.1.spec 2022-11-06 16:03:27.000000000 +0100 @@ -0,0 +1,83 @@ +Summary: SAR, SADF, MPSTAT, IOSTAT, TAPESTAT, PIDSTAT and CIFSIOSTAT for Linux +Name: sysstat +Version: 12.6.1 +Release: 1 +License: GPL +Group: Applications/System +Source0: %{name}-%{version}.tar.gz +URL: http://pagesperso-orange.fr/sebastien.godard/ +Packager: Sebastien Godard <sysstat _at_ orange.fr> +BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(id -u -n) +Requires: gettext + +%description +The sysstat package contains the sar, sadf, mpstat, iostat, tapestat, +pidstat, cifsiostat and sa tools for Linux. +The sar command collects and reports system activity information. +The information collected by sar can be saved in a file in a binary +format for future inspection. The statistics reported by sar concern +I/O transfer rates, paging activity, process-related activities, +interrupts, network activity, memory and swap space utilization, CPU +utilization, kernel activities and TTY statistics, among others. Both +UP and SMP machines are fully supported. +The sadf command may be used to display data collected by sar in +various formats (CSV, XML, etc.) and to draw graphs (SVG). +The iostat command reports CPU utilization and I/O statistics for disks. +The tapestat command reports statistics for tapes connected to the system. +The mpstat command reports global and per-processor statistics. +The pidstat command reports statistics for Linux tasks (processes). +The cifsiostat command reports I/O statistics for CIFS filesystems. + +%define debug_package %{nil} + +%prep +%setup + +%build +# To include cron installation, add options --enable-install-cron and --enable-copy-only +./configure --prefix=%{_prefix} \ + --disable-file-attr \ + sa_lib_dir=%{_libdir}/sa \ + --mandir=%{_mandir} \ + DESTDIR=$RPM_BUILD_ROOT +make + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT/var/log/sa + +make install + +mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d +install -m 755 sysstat $RPM_BUILD_ROOT/etc/rc.d/init.d/sysstat +mkdir -p $RPM_BUILD_ROOT/etc/sysconfig +install -m 644 sysstat.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/sysstat +install -m 644 sysstat.ioconf $RPM_BUILD_ROOT/etc/sysconfig/sysstat.ioconf +mkdir -p $RPM_BUILD_ROOT/etc/cron.d +install -m 644 cron/sysstat.crond.sample $RPM_BUILD_ROOT/etc/cron.d/sysstat +mkdir -p $RPM_BUILD_ROOT/etc/rc2.d +cd $RPM_BUILD_ROOT/etc/rc2.d && ln -sf ../init.d/sysstat S01sysstat +mkdir -p $RPM_BUILD_ROOT/etc/rc3.d +cd $RPM_BUILD_ROOT/etc/rc3.d && ln -sf ../init.d/sysstat S01sysstat +mkdir -p $RPM_BUILD_ROOT/etc/rc5.d +cd $RPM_BUILD_ROOT/etc/rc5.d && ln -sf ../init.d/sysstat S01sysstat + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(644,root,root,755) +%doc %{_datadir}/doc/sysstat-%{version}/* +%attr(755,root,root) %{_bindir}/* +%attr(755,root,root) %{_libdir}/sa/* +%attr(644,root,root) %{_mandir}/man*/* +%attr(644,root,root) %{_datadir}/locale/*/LC_MESSAGES/sysstat.mo +%attr(755,root,root) %dir /var/log/sa +%attr(755,root,root) /etc/rc.d/init.d/sysstat +%attr(644,root,root) /etc/sysconfig/sysstat +%attr(644,root,root) /etc/sysconfig/sysstat.ioconf +/etc/rc2.d/S01sysstat +/etc/rc3.d/S01sysstat +/etc/rc5.d/S01sysstat +%config(noreplace) %attr(0644,root,root) /etc/cron.d/sysstat + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/sysstat.ioconf new/sysstat-12.6.1/sysstat.ioconf --- old/sysstat-12.6.0/sysstat.ioconf 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/sysstat.ioconf 2022-11-06 16:03:27.000000000 +0100 @@ -66,7 +66,7 @@ #4:0:0:NODEV #5:0:0:NODEV #6:0:0:NODEV -7:loop:*:0:d:256:*:1:Loop Devices +7:loop:*:0:d:256:*:1:Loop Devices 8:sd:*:0:a:16:*:16:SCSI - Controller %d 65:8:1: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/tapestat.c new/sysstat-12.6.1/tapestat.c --- old/sysstat-12.6.0/tapestat.c 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/tapestat.c 2022-11-06 16:03:27.000000000 +0100 @@ -178,6 +178,7 @@ return 0; while ((entry = readdir(dir)) != NULL) { + if (regexec(&tape_reg, &entry->d_name[0], 1, &match, 0) == 0) { /* d_name[2] to skip the st at the front */ tmp = atoi(&entry->d_name[2]) + 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sysstat-12.6.0/tapestat.h new/sysstat-12.6.1/tapestat.h --- old/sysstat-12.6.0/tapestat.h 2022-05-29 08:46:19.000000000 +0200 +++ new/sysstat-12.6.1/tapestat.h 2022-11-06 16:03:27.000000000 +0100 @@ -1,7 +1,7 @@ /* * tapestat: report tape statistics * (C) 2015 Hewlett-Packard Development Company, L.P. - * + * * Initial revision by Shane M. SEYMOUR (shane.seymour <at> hpe.com) * Modified for sysstat by Sebastien GODARD (sysstat <at> orange.fr) */