| Index: base/strings/string_number_conversions.cc
|
| diff --git a/base/strings/string_number_conversions.cc b/base/strings/string_number_conversions.cc
|
| index 642d24e9ada11ad61444fcadd81a0accddb0df65..998e1fdbc3effec12ae0bd11a0f620628c6727ce 100644
|
| --- a/base/strings/string_number_conversions.cc
|
| +++ b/base/strings/string_number_conversions.cc
|
| @@ -42,7 +42,12 @@ struct IntToStringT {
|
| template <typename INT2, typename UINT2>
|
| struct ToUnsignedT<INT2, UINT2, true> {
|
| static UINT2 ToUnsigned(INT2 value) {
|
| - return static_cast<UINT2>(value < 0 ? -value : value);
|
| + if (value >= 0) {
|
| + return value;
|
| + } else {
|
| + // Avoid integer overflow when negating INT_MIN.
|
| + return static_cast<UINT2>(-(value + 1)) + 1;
|
| + }
|
| }
|
| };
|
|
|
|
|