Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
htop
Commits
1b21827f
Commit
1b21827f
authored
Oct 19, 2012
by
Hisham Muhammad
Browse files
Fail gracefully when /proc is not mounted
(thanks to Philipp Hagemeister)
parent
47e881f4
Changes
4
Show whitespace changes
Inline
Side-by-side
CRT.c
View file @
1b21827f
...
@@ -11,8 +11,10 @@ in the source distribution for its full text.
...
@@ -11,8 +11,10 @@ in the source distribution for its full text.
#include "String.h"
#include "String.h"
#include <curses.h>
#include <curses.h>
#include <errno.h>
#include <signal.h>
#include <signal.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_EXECINFO_H
#ifdef HAVE_EXECINFO_H
#include <execinfo.h>
#include <execinfo.h>
#endif
#endif
...
@@ -198,6 +200,13 @@ void CRT_done() {
...
@@ -198,6 +200,13 @@ void CRT_done() {
endwin
();
endwin
();
}
}
void
CRT_fatalError
(
const
char
*
note
)
{
char
*
sysMsg
=
strerror
(
errno
);
CRT_done
();
fprintf
(
stderr
,
"%s: %s
\n
"
,
note
,
sysMsg
);
exit
(
2
);
}
int
CRT_readKey
()
{
int
CRT_readKey
()
{
nocbreak
();
nocbreak
();
cbreak
();
cbreak
();
...
...
CRT.h
View file @
1b21827f
...
@@ -119,6 +119,8 @@ void CRT_init(int delay, int colorScheme);
...
@@ -119,6 +119,8 @@ void CRT_init(int delay, int colorScheme);
void
CRT_done
();
void
CRT_done
();
void
CRT_fatalError
(
const
char
*
note
);
int
CRT_readKey
();
int
CRT_readKey
();
void
CRT_disableDelay
();
void
CRT_disableDelay
();
...
...
ChangeLog
View file @
1b21827f
...
@@ -3,6 +3,8 @@ What's new in version 1.0.2
...
@@ -3,6 +3,8 @@ What's new in version 1.0.2
* Add IO priority support ('i' key)
* Add IO priority support ('i' key)
* Avoid deleting .htoprc if it is a symlink
* Avoid deleting .htoprc if it is a symlink
* Fail gracefully when /proc is not mounted
(thanks to Philipp Hagemeister)
* BUGFIX: Fix crashes when process list is empty
* BUGFIX: Fix crashes when process list is empty
What's new in version 1.0.1
What's new in version 1.0.1
...
...
ProcessList.c
View file @
1b21827f
...
@@ -193,7 +193,9 @@ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList) {
...
@@ -193,7 +193,9 @@ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList) {
this
->
processes2
=
Vector_new
(
PROCESS_CLASS
,
true
,
DEFAULT_SIZE
,
Process_compare
);
this
->
processes2
=
Vector_new
(
PROCESS_CLASS
,
true
,
DEFAULT_SIZE
,
Process_compare
);
FILE
*
file
=
fopen
(
PROCSTATFILE
,
"r"
);
FILE
*
file
=
fopen
(
PROCSTATFILE
,
"r"
);
assert
(
file
!=
NULL
);
if
(
file
==
NULL
)
{
CRT_fatalError
(
"Cannot open "
PROCSTATFILE
);
}
char
buffer
[
256
];
char
buffer
[
256
];
int
cpus
=
-
1
;
int
cpus
=
-
1
;
do
{
do
{
...
@@ -758,7 +760,9 @@ void ProcessList_scan(ProcessList* this) {
...
@@ -758,7 +760,9 @@ void ProcessList_scan(ProcessList* this) {
unsigned
long
long
int
swapFree
=
0
;
unsigned
long
long
int
swapFree
=
0
;
FILE
*
file
=
fopen
(
PROCMEMINFOFILE
,
"r"
);
FILE
*
file
=
fopen
(
PROCMEMINFOFILE
,
"r"
);
assert
(
file
!=
NULL
);
if
(
file
==
NULL
)
{
CRT_fatalError
(
"Cannot open "
PROCMEMINFOFILE
);
}
int
cpus
=
this
->
cpuCount
;
int
cpus
=
this
->
cpuCount
;
{
{
char
buffer
[
128
];
char
buffer
[
128
];
...
@@ -796,7 +800,9 @@ void ProcessList_scan(ProcessList* this) {
...
@@ -796,7 +800,9 @@ void ProcessList_scan(ProcessList* this) {
fclose
(
file
);
fclose
(
file
);
file
=
fopen
(
PROCSTATFILE
,
"r"
);
file
=
fopen
(
PROCSTATFILE
,
"r"
);
assert
(
file
!=
NULL
);
if
(
file
==
NULL
)
{
CRT_fatalError
(
"Cannot open "
PROCSTATFILE
);
}
for
(
int
i
=
0
;
i
<=
cpus
;
i
++
)
{
for
(
int
i
=
0
;
i
<=
cpus
;
i
++
)
{
char
buffer
[
256
];
char
buffer
[
256
];
int
cpuid
;
int
cpuid
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment