浏览代码

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