Преглед на файлове

Merge pull request #1162 from brian-peloton/master

Avoid upcasting uninitialized pointers
Feng Xiao преди 9 години
родител
ревизия
f2b6dbb8b3
променени са 1 файла, в които са добавени 2 реда и са изтрити 2 реда
  1. 2 2
      src/google/protobuf/stubs/statusor.h

+ 2 - 2
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;
 }