mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-27 04:32:55 +00:00
Fix overflow in comparisons.
Fix other comparison issues (integer truncation, overflow in cpu time) Signed-off-by: Brenden Matthews <brenden@diddyinc.com>
This commit is contained in:
parent
413ad89ecf
commit
810535a386
32
src/top.cc
32
src/top.cc
@ -255,7 +255,13 @@ static int compare_cpu(void *va, void *vb)
|
||||
{
|
||||
struct process *a = (struct process *)va, *b = (struct process *)vb;
|
||||
|
||||
return b->amount - a->amount;
|
||||
if (b->amount > a->amount) {
|
||||
return 1;
|
||||
} else if (a->amount > b->amount) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* mem comparison function for prio queue */
|
||||
@ -263,7 +269,13 @@ static int compare_mem(void *va, void *vb)
|
||||
{
|
||||
struct process *a = (struct process *)va, *b = (struct process *)vb;
|
||||
|
||||
return b->rss - a->rss;
|
||||
if (b->rss > a->rss) {
|
||||
return 1;
|
||||
} else if (a->rss > b->rss) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* CPU time comparision function for prio queue */
|
||||
@ -271,7 +283,13 @@ static int compare_time(void *va, void *vb)
|
||||
{
|
||||
struct process *a = (struct process *)va, *b = (struct process *)vb;
|
||||
|
||||
return b->total_cpu_time - a->total_cpu_time;
|
||||
if (b->total_cpu_time > a->total_cpu_time) {
|
||||
return 1;
|
||||
} else if (b->total_cpu_time < a->total_cpu_time) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef BUILD_IOSTATS
|
||||
@ -280,7 +298,13 @@ static int compare_io(void *va, void *vb)
|
||||
{
|
||||
struct process *a = (struct process *)va, *b = (struct process *)vb;
|
||||
|
||||
return b->io_perc - a->io_perc;
|
||||
if (b->io_perc > a->io_perc) {
|
||||
return 1;
|
||||
} else if (a->io_perc > b->io_perc) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif /* BUILD_IOSTATS */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user