Prevent underflow 87/132587/1
authorKichan Kwon <k_c.kwon@samsung.com>
Wed, 7 Jun 2017 04:52:14 +0000 (13:52 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Wed, 7 Jun 2017 04:54:22 +0000 (13:54 +0900)
- If val is large negative, it can be underflow
- In addition, tiny optimization is applied

Change-Id: I9fd7f52a60c8b7e26fc9c8a3765f17ec185429d4
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
src/runtime_info_usage.c

index 811d0d069a5ece30d7717595b799187604ce521f..b8e1c5e1c583dc4f01b36d419b87556b2e9e98dc 100644 (file)
@@ -48,8 +48,8 @@ static const runtime_info_dbus_info_s dbus_info[] = {
        { "ProcCpuUsage", "process cpu" },
 };
 
-#define kBtoKiB(val) (int)MIN(((long long)(val) * 1024 / 1000), INT_MAX)
-#define pagetoKiB(val) (int)MIN(((long long)(val) * 4096 / 1000), INT_MAX)
+#define kBtoKiB(val) ((val) <= 0) ? 0 : (int)MIN((((long long)(val) << 10) / 1000), INT_MAX)
+#define pagetoKiB(val) ((val) <= 0) ? 0 : (int)MIN((((long long)(val) << 12) / 1000), INT_MAX)
 
 /* Convert int array to GVariant("ai") */
 static GVariant *runtime_info_append_args(int *args, int size)