| Index: chrome/browser/chromeos/certificate_provider/sign_requests.cc
|
| diff --git a/chrome/browser/chromeos/certificate_provider/sign_requests.cc b/chrome/browser/chromeos/certificate_provider/sign_requests.cc
|
| index 3d3ecfc88029110c417cf324a187dd08efdf0ee1..bbe6fb9e57159430b8a032293384911f332a648f 100644
|
| --- a/chrome/browser/chromeos/certificate_provider/sign_requests.cc
|
| +++ b/chrome/browser/chromeos/certificate_provider/sign_requests.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/browser/chromeos/certificate_provider/sign_requests.h"
|
|
|
| #include "base/callback.h"
|
| +#include "base/rand_util.h"
|
|
|
| namespace chromeos {
|
| namespace certificate_provider {
|
| @@ -23,7 +24,11 @@ SignRequests::~SignRequests() {}
|
| int SignRequests::AddRequest(const std::string& extension_id,
|
| const net::SSLPrivateKey::SignCallback& callback) {
|
| RequestsState& state = extension_to_requests_[extension_id];
|
| - const int request_id = state.next_free_id++;
|
| + int request_id = base::RandInt(0, INT_MAX);
|
| + while (state.pending_requests.find(request_id) !=
|
| + state.pending_requests.end()) {
|
| + request_id = base::RandInt(0, INT_MAX);
|
| + }
|
| state.pending_requests[request_id] = callback;
|
| return request_id;
|
| }
|
|
|