summaryrefslogtreecommitdiff
path: root/community/lxtask/fix-integer-overflow.patch
blob: aac7b22c66baa69f7222d991a69a7a99259a6055 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
commit 2dbcf129cd830bc3b50a2e040f862026eb1d9ab7
Author: dgod <dgod.osa@gmail.com>
Date:   Sun Feb 12 17:32:14 2012 +0800

    fix integer overflow in memory show

    Extended by Arch Linux to fix sort tasks by memory.

diff --git a/src/interface.c b/src/interface.c
index 52c6727..62e89ff 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -430,10 +430,10 @@ void fill_list_item(gint i, GtkTreeIter *iter)
         gtk_tree_store_set(GTK_TREE_STORE(list_store), iter, COLUMN_STATE, task->state, -1);
 
         /* size */
-        gtk_tree_store_set(GTK_TREE_STORE(list_store), iter, COLUMN_MEM, size_to_string(buf, task->size * 1024), -1);
+        gtk_tree_store_set(GTK_TREE_STORE(list_store), iter, COLUMN_MEM, size_to_string(buf, ((guint64)task->size)*1024), -1);
 
         /* rss */
-        gtk_tree_store_set(GTK_TREE_STORE(list_store), iter, COLUMN_RSS, size_to_string(buf, task->rss*1024), -1);
+        gtk_tree_store_set(GTK_TREE_STORE(list_store), iter, COLUMN_RSS, size_to_string(buf, ((guint64)task->rss)*1024), -1);
 
         gtk_tree_store_set(GTK_TREE_STORE(list_store), iter, COLUMN_UNAME, task->uname, -1);
         sprintf(buf,"%0d%%", (guint)task->time_percentage);
@@ -545,10 +545,10 @@ gint compare_size_list_item(GtkTreeModel *model, GtkTreeIter *iter1, GtkTreeIter
     gtk_tree_model_get(model, iter1, column, &s1, -1);
     gtk_tree_model_get(model, iter2, column, &s2, -1);
 
-    gint64 i1 = string_to_size(s1);
-    gint64 i2 = string_to_size(s2);
+    guint64 i1 = string_to_size(s1);
+    guint64 i2 = string_to_size(s2);
 
-    ret = i2 - i1;
+    ret = (i2 > i1) - (i2 < i1);
 
     g_free(s1);
     g_free(s2);