Christian Göttsche
b85a31415e
Avoid checking of undefined macros
...
These feature macros are either define or not defined at all at the
configure step.
2020-09-18 12:28:40 +02:00
Christian Göttsche
c3952e7c20
Use strict function prototypes
...
int foo(); declares a function taking any number of arguments.
2020-09-18 12:28:40 +02:00
Christian Göttsche
7107d1db0b
Refactor __attribute__ usage
...
Use internal macros for compatibility with non GNUC compilers.
2020-09-18 12:28:40 +02:00
Christian Göttsche
f4602f7b4e
Add some default compiler warnings
...
Compatible with gcc and clang.
2020-09-18 12:28:40 +02:00
Christian Göttsche
dd6500c7c7
Sort option in help message
2020-09-18 12:27:45 +02:00
Christian Göttsche
f6b0efded5
Convert short version option to capital V
...
v is generally used for enabling verbose mode
2020-09-18 12:27:45 +02:00
Christian Göttsche
f3b4e248a3
Drop unused variable
2020-09-18 12:22:18 +02:00
Michael F. Schönitzer
1061bd719a
Change option '-m' to '-M' for consistency of cli
...
`-m` was added as short option for `--no-mouse`, this is inconsistence
to the rest of the cli since otherwise the short options to disable a
feature are capital letters. Therefore this commit renames the option to
`-M`.
This commit also documents the option in the man page.
2020-09-18 12:04:21 +02:00
Benny Baumann
40441dca8e
Enhance highlighting of semi-large and large numbers
2020-09-17 22:08:13 +02:00
Christian Göttsche
3142077c76
Add script to run htop under valgrind
...
Includes suppressions for ncurses leaks.
2020-09-17 22:06:36 +02:00
Christian Göttsche
c7568bc054
Fix memory leak in actionSetAffinity()
...
Call correct delete method for AffinityPanel
2020-09-17 22:04:11 +02:00
Christian Göttsche
71c068ad28
Free movingBar memory on exit
2020-09-17 22:04:11 +02:00
Christian Göttsche
8a849bc85a
Call character checking function with unsigned char
...
See https://wiki.sei.cmu.edu/confluence/display/c/STR37-C.+Arguments+to+character-handling+functions+must+be+representable+as+an+unsigned+char
2020-09-17 22:03:24 +02:00
Christian Göttsche
1f5bd5c4c8
Avoid modifying optarg
...
It might be working, but lets rather not modify getopt's global variable
`optarg`.
Also there is no need to call `getenv("USER")`, just use `geteuid()`.
2020-09-17 21:55:26 +02:00
Christian Göttsche
5d4061732f
Allow third party sigsegv handler
...
For example from sanitizers.
2020-09-17 21:54:21 +02:00
Christian Göttsche
00665e2a2b
Avoid unsigned integer overflow
...
unsigned overflow is well defined, but creates noise when using
sanitizers. unsigned overflow can be a symptom of logic issues of
counter, so its reasonable to use.
linux/LinuxProcessList.c:64:50: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:50 in
linux/LinuxProcessList.c:64:11: runtime error: implicit conversion from type 'unsigned int' of value 4294967295 (32-bit, unsigned) to type 'int' changed the value to -1 (32-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:11 in
linux/LinuxProcessList.c:64:78: runtime error: unsigned integer overflow: 4 - 136 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:78 in
2020-09-17 21:53:31 +02:00
Christian Göttsche
98ee833932
Add Linux process column for context switches
...
Displays the incremental sum of voluntary_ctxt_switches and nonvoluntary_ctxt_switches.
2020-09-17 21:53:15 +02:00
Christian Göttsche
ffc65b3827
Reorder check to avoid crash on invalid process field setting
...
If using a setting from a different development version with an
unsupported process field, first dereferencing Process_fields[id] yields
to a crash:
=================================================================
==19530==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000000612800 at pc 0x000000521d1a bp 0x7ffec47a5ff0 sp 0x7ffec47a5fe8
READ of size 8 at 0x000000612800 thread T0
#0 0x521d19 in readFields .htop/Settings.c:107:40
#1 0x51d117 in Settings_read .htop/Settings.c:141:10
#2 0x51c0c4 in Settings_new .htop/Settings.c:382:12
#3 0x4eafe2 in main .htop/htop.c:220:25
#4 0x7fa450570cc9 in __libc_start_main csu/../csu/libc-start.c:308:16
#5 0x427a59 in _start (.htop/htop+0x427a59)
0x000000612800 is located 0 bytes to the right of global variable 'Process_fields' defined in 'linux/LinuxProcess.c:24:18' (0x6118a0) of size 3936
SUMMARY: AddressSanitizer: global-buffer-overflow .htop/Settings.c:107:40 in readFields
Shadow bytes around the buggy address:
0x0000800ba4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0000800ba500:[f9]f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba510: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba520: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba530: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba540: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba550: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==19530==ABORTING
2020-09-17 21:46:22 +02:00
Christian Göttsche
84d39f95c6
autotools: enable warnings and cleanup
...
- enable warnings in autogen script
- drop unused m4/ directory usage
- drop AC_TYPE_SIGNAL:
C99 guarantees the signal return type to be void
- drop AC_CHECK_FILE of procdir:
most of the time compilation is done on a different system than htop is run
and there is a runtime check in place
- improve linux_affinity corss compile logic:
use fourth argument instead of pre-test
2020-09-17 21:45:11 +02:00
Christian Göttsche
37921382f4
Use PROCDIR throughout instead of /proc on Linux
2020-09-17 21:44:27 +02:00
Christian Göttsche
1efddaf1e5
Check for fdopen failure in OpenFilesScreen_getProcessData
2020-09-17 21:43:53 +02:00
Christian Göttsche
b096fdbfc0
Avoid potential buffer overflow in LinuxProcessList_readStatFile
...
Pass size of allocated command buffer and limit write.
2020-09-17 21:43:53 +02:00
Benny Baumann
95012d6259
Avoid hardcoding of buffer size
2020-09-17 21:43:05 +02:00
Benny Baumann
443a943798
Properly close pipe handles when work is done
2020-09-17 21:43:05 +02:00
Benny Baumann
6921000481
Barely ever seen any 1000 digit PIDs …
2020-09-17 21:43:05 +02:00
Daniel Lange
6646030116
Update creation date to 2004 (thanks rubyFeedback)
...
Closes #140 (doc update)
2020-09-17 09:47:28 +02:00
Daniel Lange
3a1c698578
Update README with correct tarball locations, ncurses hints and support / bug reporting pointers.
...
Closes #63 (Release URL tarballs)
Closes #61 , Closes #82 (Support requests on ncurses)
Closes #89 (ncurses docs)
Closes #28 (htop-dev vs. -legacy)
2020-09-16 18:10:29 +02:00
Zev Weiss
2899ed4cb0
Number CPUs from zero by default.
...
Numbering from one is idiosyncratic and inconsistent with basically
everything else in the world; it doesn't make much sense as default
behavior.
All naming is updated to reflect that numbering from one is a
non-default, opt-in option. The old label of the flag saved in htoprc
("cpu_count_from_zero") is still supported for backwards compatibility
with existing configs, however.
2020-09-15 03:25:08 -05:00
Nathan Scott
a2fef38be7
Merge pull request #130 from gh-fork-dump/no-python
...
configure.ac: axe python check
2020-09-15 15:51:36 +10:00
Stephen Gregoratto
a852fae8e0
configure.ac: axe python check
...
Now that the automated header script is gone, there's no need for python
now.
2020-09-15 15:19:55 +10:00
Nathan Scott
da62b44b16
Bump version, changelog for minor htop-3.0.2 release
2020-09-15 09:43:36 +10:00
Nathan Scott
c9ecd0fa74
Revert the vim_mode setting for now, needs a rethink
...
There have been too many bugs reported in vim_mode, and
the proposed fixes are increasingly fragile - hence we
have decided to back it out for now. For reference:
https://github.com/htop-dev/htop/issues/69
https://github.com/htop-dev/htop/pull/37
https://github.com/htop-dev/htop/pull/106
The whitespace changes also arrived in commit 12805f61d
not sure what that was about, but backed out as well.
2020-09-15 09:33:58 +10:00
Nathan Scott
f6662f97fd
Merge pull request #120 from cgzones/null
...
Drop always true condition
2020-09-15 09:21:46 +10:00
Nathan Scott
ccf0960d5c
Merge pull request #123 from hugomg/header-duplicates
...
Clean up some code duplication in the header files
2020-09-14 17:46:18 +10:00
Nathan Scott
313d7c980c
Merge pull request #127 from gh-fork-dump/openbsd-fix
...
fix building on openbsd due to remaining WhiteList
2020-09-14 17:42:23 +10:00
Stephen Gregoratto
fd4ada416d
fix building on openbsd due to remaining WhiteList
2020-09-14 13:18:40 +10:00
Hugo Musso Gualandi
b6828d7b86
Remove some unused #includes
...
As suggested by cppclean.
2020-09-12 23:32:31 -03:00
Hugo Musso Gualandi
a2ef400e43
Merge identical ifdefs in Affinity.h
2020-09-12 19:21:27 -03:00
Hugo Musso Gualandi
5ad3c11eaa
Alignment tweak
2020-09-12 19:21:27 -03:00
Hugo Musso Gualandi
9207401f97
Clean up some code duplication in the header files
...
PR htop-dev/htop#70 got rid of the infrastructure for generating header
files, but it left behind some code duplication.
Some of cases are things that belong in the header file and don't need
to be repeated in the C file. Other cases are things that belong in the
C file and don't need to be in the header file.
In this commit I tried to fix all of these that I could find. When given
a choice I preferred keeping things out of the header file, unless they
were being used by someone else.
2020-09-12 19:20:44 -03:00
Christian Göttsche
d5eb72e64d
Drop always true condition
...
`env` is allocated by checked allocation functions and can not be NULL.
This checks confuses clang analyzer and causes a null-dereference
warning on `env[size-1]`.
2020-09-12 18:14:39 +02:00
Nathan Scott
cd55cfd6d2
Merge branch 'BenBE-avoid-shadowing'
2020-09-09 19:41:16 +10:00
Nathan Scott
35c3a95ff9
Merge branch 'avoid-shadowing' of https://github.com/BenBE/htop into BenBE-avoid-shadowing
2020-09-09 19:40:50 +10:00
Nathan Scott
06ba81beec
Merge branch 'rgouicem-master'
2020-09-09 19:38:59 +10:00
Nathan Scott
4d6e4ef53c
Merge branch 'master' of https://github.com/rgouicem/htop into rgouicem-master
2020-09-09 19:38:53 +10:00
Nathan Scott
4597332959
Switch variable/field naming from WhiteList to MatchList
2020-09-09 19:38:15 +10:00
Nathan Scott
c5808c56db
Consolidate repeated macro definitions into one header
...
The MIN, MAX, CLAMP, MINIMUM, and MAXIMUM macros appear
throughout the codebase with many re-definitions. Make
a single copy of each in a common header file, and use
the BSD variants of MINIMUM/MAXIMUM due to conflicts in
the system <sys/param.h> headers.
2020-09-09 16:56:04 +10:00
Nathan Scott
8ec5d4a3a0
Further, minor cleanups to headers post-MakeHeaders
...
Remove leftover empty ifdef/endif pairs, whitespace.
The generated htop.h file was also unused - removed.
2020-09-08 17:33:50 +10:00
Nathan Scott
eede79b29a
Merge branch 'noheadergen' of https://github.com/zevweiss/htop into zevweiss-noheadergen
2020-09-08 16:45:11 +10:00
Benny Baumann
13b1e96b12
Avoid shadowing of variables
2020-09-07 17:36:01 +02:00