diff options
author | robertshield@google.com <robertshield@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-18 17:39:43 +0000 |
---|---|---|
committer | robertshield@google.com <robertshield@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-18 17:39:43 +0000 |
commit | 5ed7334df3a1ffce6999ed8ca135d1f59c9a229c (patch) | |
tree | 2841dd1dbafad2979a45d625942f49968c18ec62 /chrome/browser | |
parent | c22198534b75e5576b1ab7a5d3b00db48e057caf (diff) | |
download | chromium_src-5ed7334df3a1ffce6999ed8ca135d1f59c9a229c.zip chromium_src-5ed7334df3a1ffce6999ed8ca135d1f59c9a229c.tar.gz chromium_src-5ed7334df3a1ffce6999ed8ca135d1f59c9a229c.tar.bz2 |
Fix underflow that would cause either an access violation or an infinite loop if we were ever to get a "chrome_config" node back in metrics response data.
Review URL: http://codereview.chromium.org/42335
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11983 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/metrics/metrics_service.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc index 858032a..5fcdb3a 100644 --- a/chrome/browser/metrics/metrics_service.cc +++ b/chrome/browser/metrics/metrics_service.cc @@ -1498,8 +1498,9 @@ bool MetricsService::ProbabilityTest(double probability, // string somehow to get a big integer idnumber (could be negative // from wraparound) int big = 1; - for (size_t j = n - 1; j >= 0; --j) { - idnumber += static_cast<int>(client_id_c_str[j]) * big; + int last_pos = n - 1; + for (size_t j = 0; j < n; ++j) { + idnumber += static_cast<int>(client_id_c_str[last_pos - j]) * big; big *= 10; } |