7107d1db0b
Refactor __attribute__ usage
...
Use internal macros for compatibility with non GNUC compilers.
2020-09-18 12:28:40 +02:00
f4602f7b4e
Add some default compiler warnings
...
Compatible with gcc and clang.
2020-09-18 12:28:40 +02:00
dd6500c7c7
Sort option in help message
2020-09-18 12:27:45 +02:00
f6b0efded5
Convert short version option to capital V
...
v is generally used for enabling verbose mode
2020-09-18 12:27:45 +02:00
f3b4e248a3
Drop unused variable
2020-09-18 12:22:18 +02:00
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
40441dca8e
Enhance highlighting of semi-large and large numbers
2020-09-17 22:08:13 +02:00
3142077c76
Add script to run htop under valgrind
...
Includes suppressions for ncurses leaks.
2020-09-17 22:06:36 +02:00
c7568bc054
Fix memory leak in actionSetAffinity()
...
Call correct delete method for AffinityPanel
2020-09-17 22:04:11 +02:00
71c068ad28
Free movingBar memory on exit
2020-09-17 22:04:11 +02:00
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
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
5d4061732f
Allow third party sigsegv handler
...
For example from sanitizers.
2020-09-17 21:54:21 +02:00
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
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
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
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
37921382f4
Use PROCDIR throughout instead of /proc on Linux
2020-09-17 21:44:27 +02:00
1efddaf1e5
Check for fdopen failure in OpenFilesScreen_getProcessData
2020-09-17 21:43:53 +02:00
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
95012d6259
Avoid hardcoding of buffer size
2020-09-17 21:43:05 +02:00
443a943798
Properly close pipe handles when work is done
2020-09-17 21:43:05 +02:00
6921000481
Barely ever seen any 1000 digit PIDs …
2020-09-17 21:43:05 +02:00
6646030116
Update creation date to 2004 (thanks rubyFeedback)
...
Closes #140 (doc update)
2020-09-17 09:47:28 +02:00
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
a2fef38be7
Merge pull request #130 from gh-fork-dump/no-python
...
configure.ac: axe python check
2020-09-15 15:51:36 +10:00
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
da62b44b16
Bump version, changelog for minor htop-3.0.2 release
3.0.2
2020-09-15 09:43:36 +10:00
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
f6662f97fd
Merge pull request #120 from cgzones/null
...
Drop always true condition
2020-09-15 09:21:46 +10:00
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
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
fd4ada416d
fix building on openbsd due to remaining WhiteList
2020-09-14 13:18:40 +10:00
b6828d7b86
Remove some unused #includes
...
As suggested by cppclean.
2020-09-12 23:32:31 -03:00
a2ef400e43
Merge identical ifdefs in Affinity.h
2020-09-12 19:21:27 -03:00
5ad3c11eaa
Alignment tweak
2020-09-12 19:21:27 -03:00
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
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
cd55cfd6d2
Merge branch 'BenBE-avoid-shadowing'
2020-09-09 19:41:16 +10:00
35c3a95ff9
Merge branch 'avoid-shadowing' of https://github.com/BenBE/htop into BenBE-avoid-shadowing
2020-09-09 19:40:50 +10:00
06ba81beec
Merge branch 'rgouicem-master'
2020-09-09 19:38:59 +10:00
4d6e4ef53c
Merge branch 'master' of https://github.com/rgouicem/htop into rgouicem-master
2020-09-09 19:38:53 +10:00
4597332959
Switch variable/field naming from WhiteList to MatchList
2020-09-09 19:38:15 +10:00
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
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
eede79b29a
Merge branch 'noheadergen' of https://github.com/zevweiss/htop into zevweiss-noheadergen
2020-09-08 16:45:11 +10:00
13b1e96b12
Avoid shadowing of variables
2020-09-07 17:36:01 +02:00
85ff6960ed
Merge branch 't6-patch-freebsd-ci'
2020-09-07 10:25:50 +10:00
a1f2532630
Merge branch 'patch-freebsd-ci' of https://github.com/t6/htop-1 into t6-patch-freebsd-ci
2020-09-07 10:25:44 +10:00
7805575114
fix for double symbol link error on solaris
2020-09-05 15:34:27 +10:00