serialization: check stream good flag at the end

just in case
pull/5639/head
moneromooo-monero 5 years ago
parent a00cabd4f3
commit 1387549e90
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

@ -320,7 +320,7 @@ namespace cryptonote
} }
if (!typename Archive<W>::is_saving()) if (!typename Archive<W>::is_saving())
pruned = true; pruned = true;
return true; return ar.stream().good();
} }
private: private:

@ -252,7 +252,7 @@ namespace rct {
{ {
FIELD(type) FIELD(type)
if (type == RCTTypeNull) if (type == RCTTypeNull)
return true; return ar.stream().good();
if (type != RCTTypeFull && type != RCTTypeSimple && type != RCTTypeBulletproof && type != RCTTypeBulletproof2) if (type != RCTTypeFull && type != RCTTypeSimple && type != RCTTypeBulletproof && type != RCTTypeBulletproof2)
return false; return false;
VARINT_FIELD(txnFee) VARINT_FIELD(txnFee)
@ -312,7 +312,7 @@ namespace rct {
ar.delimit_array(); ar.delimit_array();
} }
ar.end_array(); ar.end_array();
return true; return ar.stream().good();
} }
}; };
struct rctSigPrunable { struct rctSigPrunable {
@ -325,7 +325,7 @@ namespace rct {
bool serialize_rctsig_prunable(Archive<W> &ar, uint8_t type, size_t inputs, size_t outputs, size_t mixin) bool serialize_rctsig_prunable(Archive<W> &ar, uint8_t type, size_t inputs, size_t outputs, size_t mixin)
{ {
if (type == RCTTypeNull) if (type == RCTTypeNull)
return true; return ar.stream().good();
if (type != RCTTypeFull && type != RCTTypeSimple && type != RCTTypeBulletproof && type != RCTTypeBulletproof2) if (type != RCTTypeFull && type != RCTTypeSimple && type != RCTTypeBulletproof && type != RCTTypeBulletproof2)
return false; return false;
if (type == RCTTypeBulletproof || type == RCTTypeBulletproof2) if (type == RCTTypeBulletproof || type == RCTTypeBulletproof2)
@ -429,7 +429,7 @@ namespace rct {
} }
ar.end_array(); ar.end_array();
} }
return true; return ar.stream().good();
} }
}; };

@ -212,7 +212,7 @@ inline bool do_serialize(Archive &ar, bool &v)
* \brief self-explanatory * \brief self-explanatory
*/ */
#define END_SERIALIZE() \ #define END_SERIALIZE() \
return true; \ return ar.stream().good(); \
} }
/*! \macro VALUE(f) /*! \macro VALUE(f)

Loading…
Cancel
Save