commit 4492ec7f757d88c61b656b39236339a1602be1e7
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Tue Sep 23 19:16:03 2025 +0200

    Prepare version 2.12.1

M	version.h

commit 472b157b0f3eef07908011ab147cff8368782a24
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sun Sep 21 14:17:02 2025 +0200

    Allow samples with same timestamp in rawlog (#346)
    
    When atop is terminated and restarted right away (like in the
    case of 'systemctl restart atop') two samples might get same timestamp.
    This should be allowed when extending an existing raw log.
    
    Apart from that, only a check is done on the cgroup version (v2)
    of the existing raw log instead of checking on all features.

M	rawlog.c

commit d4b7240e1007e20c412af783983658c73f72d992
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Jun 14 12:34:53 2025 +0200

    Prepare version 2.12

M	atopconvert.c
A	prev/cgroups_212.h
A	prev/photoproc_212.h
A	prev/photosyst_212.h
M	version.h

commit e922b4e0f31d35ba6a420bbfcb8a219d690b861d
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Jun 14 10:03:10 2025 +0200

    Remove unused function definition

M	atophide.c

commit 9f40a3330aa326a15d5497b59e4b81386f7814e9
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Jun 14 09:53:06 2025 +0200

    Improved error messages

M	showgeneric.c

commit 6fc059ccb18a4bc67429c588995b14c727bdf0e4
Merge: 9528f60 298f8fb
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Jun 9 20:28:57 2025 +0200

    Merge pull request #343 from jbd/patch-1
    
    command-line may contain a carriage return

commit 9528f60c00deef4df413c09c99607f5d6d1559c4
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Jun 9 20:15:47 2025 +0200

    Occasional difference threads vs processes (issue #342)
    
    Occasionally tolerate that the number of threads can be 1 or 2
    smaller than the number of processes due to a possible race condition
    while gathering both amounts. This situation might specifically occur
    in the early boot phase when only single-threaded processes are running.

M	photoproc.c

commit 298f8fbffe65135c0a03d9ab6844c5afba264640
Author: Jean-Baptiste Denis <jbd@jbdenis.net>
Date:   Thu Jun 5 15:54:15 2025 +0200

    command-line may contain a carriage return
    
    We have some issue when /proc/[pid]/cmdline contains a carriage return (don't ask why). It messes up atop output, whether it is interactive or parsable.
    
    Let's convert it to space like the null-bytes, linefeed and tabs.

M	photoproc.c

commit 861e8e60bbb88bf7d5447ef84018b883b8f0f901
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Jun 2 12:12:51 2025 +0200

    Definition of zswap usage in raw log
    
    The definition of the use of zswap should be stored
    in the raw log instead of checking this on the system
    on which the raw log is shown.

M	atop.c
M	atop.h
M	photosyst.c
M	photosyst.h
M	showsys.c

commit cb1cd60fc7b432869150072d6b38288aae6f369e
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat May 31 15:25:51 2025 +0200

    Definition of real NUMA in raw log
    
    The definition of the use of real NUMA (versus fake NUMA) should
    be stored in the raw log instead of checking this on the system
    on which the raw log is shown.

M	atop.c
M	atop.h
M	photosyst.c
M	photosyst.h
M	showlinux.c

commit 19e7bbec262ef84f99497264058fda723b81d9ac
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat May 31 14:41:17 2025 +0200

    Avoid divide by zero when InfiniBand rate is 0

M	showsys.c

commit 2a37b3d1a8a7dbe9b8cacabf01ec985b6f1e1770
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat May 31 14:39:04 2025 +0200

    Update comment about structure of raw log

M	rawlog.h

commit 63377ebd3839c5c5b5659f4ba3ad80e20757b116
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sun May 25 19:59:05 2025 +0200

    Add maxlineifb, maxlinenuma and maxlinellc

M	man/atoprc.5

commit c7540b772dfa63dc3d2b9063af67d418020f27db
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sun May 25 19:40:32 2025 +0200

    Recognize fake NUMA (also solves #74)
    
    In case of fake NUMA (which is used e.g. in case of Raspberry Pi 5)
    no NUMA-specific stats will be shown. Usually two lines are shown
    for every NUMA node which is a waste of screen lines for fake NUMA
    systems.
    
    Also a related buffer overflow and many potential buffer
    overflows have been corrected.

M	atop.c
M	atopcat.c
M	netlink.c
M	photosyst.c
M	photosyst.h
M	showlinux.c
M	showprocs.c
M	showsys.c

commit f5acb32437d80ccb8b7d7293c31802521c6084b2
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Thu May 22 15:39:31 2025 +0200

    Remove atophide executable with make clean

M	Makefile

commit 9448449cb88e526f749f26d79347716ea5f064fc
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon May 12 14:17:55 2025 +0200

    Removed explicit prototype for getresuid

M	various.c

commit ba9b68a916cf58dd5dd93d99dd745cd75345dde8
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat May 10 14:45:11 2025 +0200

    Forbid concatenate cgroups/nocgroups combi

M	atopcat.c

commit 2303567d4353dacfe5ed908cc813af91816aa41f
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri May 9 11:31:45 2025 +0200

    More sanity checks before extending raw log

M	rawlog.c

commit 2bf011c9ac198a654f91770f7ca39f79cdea3eee
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri Apr 25 15:46:24 2025 +0200

    Raw file integrity when expanding (issue #332)
    
    Verify the integrity of an existing raw file before expanding with the
    -w flag by reading the existing sample headers.

M	rawlog.c

commit c0b5194d2eddad9f3e503b5852d413e6d5601661
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 19 15:04:47 2025 +0200

    Consistency check reading raw file (issue #332)
    
    A consistency check has been added while reading a raw file
    to determine if a sample has been completely written to
    the raw file.

M	rawlog.c

commit a754ace399264673d82c9c055499e79d231c5920
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 19 13:57:14 2025 +0200

    Revert to consistent raw file size (issue #332)
    
    The writev() system call does not guarantee that data buffers
    are either completely written or none at all (e.g. when the
    disk space is exhausted while writing to a raw file).
    Therefore, the return value is checked for complete writing
    now instead of value -1 (error).

M	rawlog.c

commit e831680db430c21ca885e10ac64f51d533c778df
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 19 10:36:51 2025 +0200

    Add flags -k and -K to man page

M	man/atop.1

commit 80ba49aee740f2c47ad90878406424d67c32c65d
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 12 11:17:17 2025 +0200

    Cleanup reading of raw log files (issue #333)
    
    Remove the automatic unzip of raw log files and the search
    for alternative atop-versions in case of raw log incompatibility.

M	rawlog.c

commit e96ec10bca41d39c8bb5738b73283a62d7f4f5ae
Merge: 3ce7bd9 f4de797
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 12 10:39:58 2025 +0200

    Merge pull request #331 from jrtc27/argv0-memcmp
    
    Fix memory-unsafe and buggy argv[0] string comparison

commit 3ce7bd906316acf9f89a758684ccec7139ceaf1d
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 12 10:33:57 2025 +0200

    Corrected typo (issue #329)

M	atop.c

commit 48caa742bc2eb0af42e8482a02d5df2931c9aeeb
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 12 10:28:36 2025 +0200

    Definition twindir[] to include file (isue #335)

M	atop.c
M	atop.h
M	showgeneric.c

commit 6656f6f92409a92282b061497252d4955322631e
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 12 09:56:58 2025 +0200

    Safer string copy (issue #335)
    
    Function strncpy() replaced by internal function safe_strcpy()
    that always takes care of null-termination.

M	acctproc.c
M	atop.c
M	atop.h
M	atophide.c
M	atopsar.c
M	gpucom.c
M	ifprop.c
M	photosyst.c
M	showgeneric.c
M	various.c

commit 45744c60661cc926f9e972ac682b65026d93ab76
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Apr 5 12:24:44 2025 +0200

    Add warning about usage of -z flag (issue #337)
    
    An explicit warning message has been added to the man page of atop
    and to the usage message that atop shows: do not use this flag
    when writing a publicly readable raw file.

M	atop.c
M	man/atop.1

commit 542b7f7ac52926ca272129dba81d7db80279bb98
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Mar 29 15:13:50 2025 +0100

    Fix security vulnerability CVE-2025-31160 (#334)
    
    Atop will not connect to the TCP port of 'atopgpud' daemon any more
    by default.  The flag -k can be used explicitly when 'atopgpud' is
    active. Also the code to parse the received strings is improved to
    avoid future issues with heap corruption.
    
    The flag -K has been implemented to connect to netatop/netatop-bpf.

M	atop.c
M	atop.h
M	gpucom.c
M	photoproc.c

commit f4de7972767d9079bed11e64c83775a3024dfbef
Author: Jessica Clarke <jrtc27@jrtc27.com>
Date:   Wed Mar 26 21:38:17 2025 +0000

    Fix memory-unsafe and buggy argv[0] string comparison
    
    memcmp assumes both its arguments have as many bytes as is specified,
    but argv[0] may not be at least 7 bytes long (including when run as
    atop, where it will have 5 bytes including the terminator). This can
    lead to buffer overreads, whether in the system memcmp implementation or
    in compiler-inlined versions (as is the case when compiling with LLVM,
    for example). Moreover, 7 was the incorrect count to be using anyway as
    it won't check that "atopsar" is terminated, so will return true if
    argv[0] merely has "atopsar" as a prefix.
    
    Fix both of these by using strcmp instead.

M	atop.c

commit 77e658ea04f4901adf44c73cdd98bd4f0e664be0
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Wed Mar 26 18:58:47 2025 +0100

    Restored check for munmap call (solves #330)
    
    A check has been restored to avoid that the munmap() call is used
    on a NULL pointer since the behavior of munmap() is undefined in
    that case.

M	netatopif.c

commit 037a6d3e4ace6c7be6c5dcf0c286c013e3c884cc
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Mar 15 10:38:18 2025 +0100

    Add network interface errors to -P and -J output
    
    Many error counters that were gathered per network interface
    (like number of input/output packets dropped) are also added
    to the parseable output (-PNET) and JSON output (-JNET).

M	json.c
M	man/atop.1
M	parseable.c

commit 8d1799bff61461ef151aed6e05b05cacb6475648
Merge: 9f2eaf8 bfd20dd
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri Mar 14 16:35:31 2025 +0100

    Merge pull request #327 from GermanAizek/remove-excess-checks
    
    Removed excess checks before free()

commit 9f2eaf8e47fe84400b933a29ca1853dafb3b5db1
Merge: a0e96f1 04853e2
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri Mar 14 16:03:15 2025 +0100

    Merge pull request #325 from GermanAizek/guard-bit-shifting-64bit
    
    Fixed possible wrong result bit shifting on 64bit after left op type overflow

commit a0e96f124f93b178ae9dba616e8abc87763b3bc6
Merge: 69d5d9c 35aeb64
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri Mar 14 16:01:41 2025 +0100

    Merge pull request #324 from GermanAizek/begin-check-and-array-access-by-index
    
    Fixed possible access out-of-bounds items array better check index before using

commit 69d5d9c594dd865874a6f62f746af84e8d26592e
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri Mar 14 15:57:20 2025 +0100

    Modified char type variable to int (issue #323)

M	atopacctd.c

commit ece93ebc7b9ebbb73f92b2238a87b78ddbd4ca98
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Fri Mar 14 15:39:30 2025 +0100

    Redefine function prototypes (solves issue #322)
    
    Certain function prototypes did not explicitly define the
    calling argument types, specifically the prototypes for the
    convert functions defined in the 'detail_printdef' structure.
    These incomplete definitions cause a lot of errors when using
    gcc 1.15 which is based on C23.

M	atop.c
M	atopacctd.c
M	atopcat.c
M	atopconvert.c
M	atophide.c
M	atopsar.c
M	cgroups.c
M	drawbar.c
M	gpucom.c
M	netatopif.c
M	photoproc.c
M	photosyst.c
M	rawlog.c
M	showgeneric.c
M	showlinux.h
M	showprocs.c
M	various.c

commit bfd20dd1575ee1e237c7296c9b7736b944de1a50
Author: Herman Semenov <GermanAizek@yandex.ru>
Date:   Wed Mar 12 05:15:26 2025 +0300

    Removed excess checks before free()
    
    C89: 4.10.3.2 The free function.
    
    The free function causes the space pointed to by ptr to be deallocated, that is, made available for further allocation. If ptr is a null pointer, no action occurs.

M	atop.c
M	cgroups.c
M	deviate.c
M	gpucom.c
M	netatopif.c
M	showgeneric.c

commit 04853e2de7c4ace7371274007586fadbcde730d8
Author: Herman Semenov <GermanAizek@yandex.ru>
Date:   Wed Mar 12 04:43:50 2025 +0300

    Fixed possible wrong result bit shifting on 64bit after left op type overflow

M	showprocs.c

commit 070c75cfe5b11eca1b9d068aec298048d44b6199
Author: Herman Semenov <GermanAizek@yandex.ru>
Date:   Wed Mar 12 04:40:29 2025 +0300

    Fixed possible wrong result bit shifting on 64bit after left operand type overflow

M	cgroups.c

commit 35aeb648d89af64292f81cfdf8526ea9d21ac0d0
Author: Herman Semenov <GermanAizek@yandex.ru>
Date:   Wed Mar 12 04:26:00 2025 +0300

    Fixed possible access out-of-bounds items array better check index before using

M	showlinux.c

commit 7c96e867244db8f4362227ed27be355deb072d57
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Mar 1 12:14:56 2025 +0100

    Highlight current sort criterium in text mode
    
    Highlight the column that is used as sort criterium in text mode
    1) to be consistent with the output of cgroups stats ('G') and
    2) to be prepared for the possibility to sort on other columns
       in the future (under investigation)

M	showprocs.c

commit a993131cc79a97ba90f1d134abe631cd25385afa
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Wed Feb 12 16:00:38 2025 +0100

    Build requirement glib2-devel added to .spec file

M	rpmspec/atop.specsystemd

commit 3462fe6f4b6edd372168531e840ef6663c1378d3
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Thu Jan 30 14:29:47 2025 +0100

    Branch to end of raw log file (solves issue #319)
    
    With the key 'Z' it is possible to jump to the end of
    the raw log file (when reading raw log file or in twin mode).

M	atop.c
M	drawbar.c
M	man/atop.1
M	rawlog.c
M	showgeneric.c
M	showgeneric.h

commit 3c1d6aa7fa1867d6df0672b7db74c2a0bbffcadc
Merge: 63ec829 64d8add
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Thu Jan 30 12:40:32 2025 +0100

    Merge pull request #320 from bytedance/acct_bug
    
    /run/pacct_source abnormally large

commit 64d8addca5ce491f16468dd87083b9cd6124e4b4
Author: liuting.0xffff <liuting.0xffff@bytedance.com>
Date:   Thu Dec 26 20:10:35 2024 +0800

    /run/pacct_source abnormally large

M	atopacctd.c

commit 63ec829f7af9901ed17554556391f709394efd30
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Dec 7 10:18:51 2024 +0100

    Also allow combining -B with other output channels

M	atop.c

commit 56f6aae7f43729933b942c9ee1edc8c8577973ec
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Dec 7 10:04:07 2024 +0100

    Allow simultaneous output streams (solves #317)
    
    When starting atop, simultaneous output streams can be specified.
    This allows viewing the output in a full screen session or writing
    the output in parseable/JSON output while writing the samples
    to a raw file simultaneously.
    
    Examples:
    
    - Present full screen session (by explicitly defining one of the
      flags that are typical for a full screen session, like -g) while
      recording the samples in the file /tmp/rawout:
    
           atop -g -w /tmp/rawout
    
    - Generate JSON output and parseable output while recording
      the samples in the file /tmp/rawout with an interval of 4 seconds:
    
           atop -JCPU,MEM -PCPU,MEM -w /tmp/rawout  4

M	atop.c
M	atop.h
M	atopsar.c
M	man/atop.1
M	rawlog.c
M	various.c

commit c9a7ee2ed08f625db398e2500a0e12f37ab3f5a0
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Wed Nov 20 20:17:44 2024 +0100

    Redesign of PSI for memory

M	drawbar.c

commit 95ef95c42dd25e0fc1509533700f476fed7f975d
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Nov 18 13:02:46 2024 +0100

    Add PSI bar graphs for CPU, memory and disks
    
    Three bar graphs have been added for processors, disks and memory
    the show the PSI percentages 'some' (S) and 'full' (F). In this way
    a clear overview is given about the state of your critical hardware
    resources on system level.

M	drawbar.c
M	man/atop.1
M	showgeneric.c
M	showgeneric.h

commit 328041f35a582e7c3ec6230d9a9f43c8fadd16a5
Merge: 6d2733b 7478a80
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Nov 18 09:39:56 2024 +0100

    Merge branch 'master' into barpsi

commit 7478a809988d351ae05a734c3757294e11bc9af9
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Nov 18 09:37:02 2024 +0100

    Remove double wrefresh call for memory graph
    
    Avoid screen flashing when drawing the memory graphs that was caused
    by a double call to wrefresh().

M	drawbar.c

commit 6d2733b6b3677dd74ab7b668c79d34ea31851b5d
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Mon Nov 18 09:34:31 2024 +0100

    Add PSI bar graph for CPU and disks

M	drawbar.c
M	photosyst.c

commit c48ae8512d3682ef7aebeba8bd31676683a11668
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Thu Oct 24 11:41:35 2024 +0200

    Add link to cheatsheet for keys

M	README.md

commit 9228272a4aec00329255b1f4c5a5aee33eddfde3
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Oct 12 10:51:05 2024 +0200

    UID to user name conversion via hash list

M	atop.h
M	showprocs.c
M	various.c

commit bce8217582a2545456578970eb9557bd45d1f5fb
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Oct 12 10:49:44 2024 +0200

    Improve description of user selection (also UID)

M	man/atop.1
M	man/atoprc.5
M	showgeneric.c

commit 631defdd22e3b6872c440d368d7acf459150eea5
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Sep 28 13:26:17 2024 +0200

    Makefile: pass additional CFLAGS and LDFLAGS
    
    Allow user to pass CFLAGS and LDFLAGS which is needed for some build systems.
    For example, Buildroot needs to disable optimizations on some CPU architectures.
    Integrates pull request #314

M	Makefile

commit 119711710442327f4cd3c8a23199c646b1833c77
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Sep 28 12:35:10 2024 +0200

    Introduce -I flag (solves issue #309 and #68)
    
    With the -I flag the translation from a UID/GID to a name will be
    suppressed, so all UIDs and GIDs will be shown as numbers.
    This can be useful to view a raw log file from another system
    (to avoid wrong translations using info from the local system).
    
    Besides, when a user name or group name is longer than 8 characters
    it will automatically be presented as a number instead of showing
    a truncated name (even if the -I flag has not been used).

M	atop.c
M	atop.h
M	man/atop.1
M	showgeneric.c
M	showprocs.c

commit 0e2b493ed418d55be1b79e1bab809fa7d0bef494
Merge: e530cfd 9569abf
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Sep 28 11:28:14 2024 +0200

    Merge branch 'clan-makefile'

commit 9569abf13eb5b47b52a05335286ef67e2a9dfe17
Author: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date:   Sat Sep 28 11:27:54 2024 +0200

    Correct no-stringop-trunction to no-stringop-truncation

M	Makefile

commit f5bc540e50ebb1e1c868a2d522f63b2ae22b2fdd
Author: Z. Liu <zhixu.liu@gmail.com>
Date:   Fri Aug 30 22:42:48 2024 +0800

    -Wno-stringop-truncation is available for gcc only
    
    if compiled by clang, see following warning:
    
      warning: unknown warning option '-Wno-stringop-truncation'; did you mean '-Wno-format-truncation'? [-Wunknown-warning-option]
    
    so detect CC is clang or gcc, add option only for gcc

M	Makefile
