diff options
author | Feng Xiao <xiaofeng@google.com> | 2016-01-21 11:19:40 -0800 |
---|---|---|
committer | Feng Xiao <xiaofeng@google.com> | 2016-01-21 11:19:40 -0800 |
commit | f2b6dbb8b34dcf2124ebbc17860f2335495f692a (patch) | |
tree | 72d98d5ced420c849bb66f518da7d29999a86259 | |
parent | fe066bd514fcd08f2c2bf94d3d0e89e3c4f10884 (diff) | |
parent | 96c2dd5dfc7359936ca02ac5e18142caeb485a33 (diff) | |
download | protobuf-f2b6dbb8b34dcf2124ebbc17860f2335495f692a.tar.gz protobuf-f2b6dbb8b34dcf2124ebbc17860f2335495f692a.tar.bz2 protobuf-f2b6dbb8b34dcf2124ebbc17860f2335495f692a.zip |
Merge pull request #1162 from brian-peloton/master
Avoid upcasting uninitialized pointers
-rw-r--r-- | src/google/protobuf/stubs/statusor.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/google/protobuf/stubs/statusor.h b/src/google/protobuf/stubs/statusor.h index a9d2b374..ad848701 100644 --- a/src/google/protobuf/stubs/statusor.h +++ b/src/google/protobuf/stubs/statusor.h @@ -224,14 +224,14 @@ inline StatusOr<T>& StatusOr<T>::operator=(const StatusOr<T>& other) { template<typename T> template<typename U> inline StatusOr<T>::StatusOr(const StatusOr<U>& other) - : status_(other.status_), value_(other.value_) { + : status_(other.status_), value_(other.status_.ok() ? other.value_ : NULL) { } template<typename T> template<typename U> inline StatusOr<T>& StatusOr<T>::operator=(const StatusOr<U>& other) { status_ = other.status_; - value_ = other.value_; + if (status_.ok()) value_ = other.value_; return *this; } |