diff options
author | Luca Stefani <luca020400@lineageos.org> | 2017-02-28 14:40:53 +0100 |
---|---|---|
committer | Luca Stefani <luca020400@lineageos.org> | 2017-02-28 14:40:53 +0100 |
commit | 7b73a212e4050d7cb1ea38aceff0e650f9d0f9ec (patch) | |
tree | a194ae93fa1d9e2b7e4ad0f954669a4c37d53f76 | |
parent | 5826a44279d9eac8a11463520606a8164f096baa (diff) | |
parent | 7e152c602e8ee0e02c51475dea974aeec990dbef (diff) | |
download | android_hardware_qcom_display-cm-14.1-caf-8952.tar.gz android_hardware_qcom_display-cm-14.1-caf-8952.tar.bz2 android_hardware_qcom_display-cm-14.1-caf-8952.zip |
Merge remote-tracking branch 'caf/LA.BR.1.3.6_rb1.14' into HEADcm-14.1-caf-8952
-rw-r--r-- | libmemtrack/kgsl.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libmemtrack/kgsl.c b/libmemtrack/kgsl.c index 5a6b07529..a2c7b1c8f 100644 --- a/libmemtrack/kgsl.c +++ b/libmemtrack/kgsl.c @@ -103,14 +103,26 @@ int kgsl_memtrack_get_memory(pid_t pid, enum memtrack_type type, continue; } + if (size == 0) + return -EINVAL; + + if (unaccounted_size + size < size) + return -ERANGE; + if (type == MEMTRACK_TYPE_GL && strcmp(line_type, "gpumem") == 0) { if (flags[6] == 'Y') { + if (accounted_size + mapsize < accounted_size) + return -ERANGE; + accounted_size += mapsize; - unaccounted_size += size - mapsize; - } else - unaccounted_size += size; + if (mapsize > size) + return -EINVAL; + + unaccounted_size += size - mapsize; + } else + unaccounted_size += size; } else if (type == MEMTRACK_TYPE_GRAPHICS && strcmp(line_type, "ion") == 0) { if ( !(is_surfaceflinger == false && strcmp(line_usage, "egl_surface") == 0)) { unaccounted_size += size; |