commit 2dbcf129cd830bc3b50a2e040f862026eb1d9ab7 Author: dgod 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);