summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorrobertshield@google.com <robertshield@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-18 17:39:43 +0000
committerrobertshield@google.com <robertshield@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-18 17:39:43 +0000
commit5ed7334df3a1ffce6999ed8ca135d1f59c9a229c (patch)
tree2841dd1dbafad2979a45d625942f49968c18ec62 /chrome/browser
parentc22198534b75e5576b1ab7a5d3b00db48e057caf (diff)
downloadchromium_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.cc5
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;
}