From 8a291c265d617732e42059562d39d477191d47e6 Mon Sep 17 00:00:00 2001 From: Andras Becsi <andras.becsi@digia.com> Date: Wed, 5 Nov 2014 15:39:29 +0100 Subject: [PATCH] Debug built crashes on start using Linux kernel > 3.16 due to SHMMAX change https://code.google.com/p/chromium/issues/detail?id=403869 Cherry-pick https://codereview.chromium.org/471893003 Author: brettw@chromium.org Parse shmmax as a uint64 A recent Linux kernel change changed this to a number larger than 63 bits which causes us to compute 0 size. I kept the size_t overflow check for cases where size_t is 32-bits. BUG=403869 R=jamesr@chromium.org Change-Id: I2ed233ec7d98484e3b25534df3a087d4f8ea26b4 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=289903 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> --- chromium/base/sys_info_linux.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/chromium/base/sys_info_linux.cc b/chromium/base/sys_info_linux.cc index 6f1e5eb7d1f..92d3cbe83cf 100644 --- a/chromium/base/sys_info_linux.cc +++ b/chromium/base/sys_info_linux.cc @@ -36,12 +36,11 @@ size_t MaxSharedMemorySize() { contents.erase(contents.length() - 1); } - int64 limit; - if (!base::StringToInt64(contents, &limit)) { + uint64 limit; + if (!base::StringToUint64(contents, &limit)) { limit = 0; } - if (limit < 0 || - static_cast<uint64>(limit) > std::numeric_limits<size_t>::max()) { + if (limit > std::numeric_limits<size_t>::max()) { limit = 0; } DCHECK(limit > 0); -- GitLab