Fix Uninitialised in RsNxsGrp

This commit is contained in:
Phenom 2021-02-10 19:45:45 +01:00
parent 5ddf0863c5
commit 47ad48cafd
2 changed files with 51 additions and 49 deletions

View File

@ -164,8 +164,9 @@ void RsNxsEncryptedDataItem::serial_process(RsGenericSerializer::SerializeJob j,
} }
int RsNxsGrp::refcount = 0; int RsNxsGrp::refcount = 0;
/** print and clear functions **/
int RsNxsMsg::refcount = 0; int RsNxsMsg::refcount = 0;
/** print and clear functions **/
void RsNxsMsg::clear() void RsNxsMsg::clear()
{ {
@ -197,8 +198,8 @@ void RsNxsSyncGrpReqItem::clear()
{ {
flag = 0; flag = 0;
createdSince = 0; createdSince = 0;
syncHash.clear();
updateTS = 0; updateTS = 0;
syncHash.clear();
} }
void RsNxsGroupPublishKeyItem::clear() void RsNxsGroupPublishKeyItem::clear()
{ {
@ -209,8 +210,8 @@ void RsNxsSyncMsgReqItem::clear()
grpId.clear(); grpId.clear();
flag = 0; flag = 0;
createdSinceTS = 0; createdSinceTS = 0;
syncHash.clear();
updateTS = 0; updateTS = 0;
syncHash.clear();
} }
void RsNxsSyncGrpItem::clear() void RsNxsSyncGrpItem::clear()
{ {
@ -223,8 +224,8 @@ void RsNxsSyncGrpItem::clear()
void RsNxsSyncMsgItem::clear() void RsNxsSyncMsgItem::clear()
{ {
flag = 0; flag = 0;
msgId.clear();
grpId.clear(); grpId.clear();
msgId.clear();
authorId.clear(); authorId.clear();
} }

View File

@ -92,9 +92,9 @@ public:
static const uint8_t FLAG_ONLY_CURRENT; // only send most current version of grps / ignores sync hash static const uint8_t FLAG_ONLY_CURRENT; // only send most current version of grps / ignores sync hash
explicit RsNxsSyncGrpReqItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_GRP_REQ_ITEM) { clear();} explicit RsNxsSyncGrpReqItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_GRP_REQ_ITEM) { clear();}
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
uint8_t flag; // advises whether to use sync hash uint8_t flag; // advises whether to use sync hash
uint32_t createdSince; // how far back to sync data uint32_t createdSince; // how far back to sync data
@ -114,12 +114,12 @@ public:
, request_type(0), number_of_posts(0), last_post_TS(0) , request_type(0), number_of_posts(0), last_post_TS(0)
{} {}
virtual void clear() {} virtual void clear() override {}
static const uint8_t GROUP_INFO_TYPE_REQUEST = 0x01; static const uint8_t GROUP_INFO_TYPE_REQUEST = 0x01;
static const uint8_t GROUP_INFO_TYPE_RESPONSE = 0x02; static const uint8_t GROUP_INFO_TYPE_RESPONSE = 0x02;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
uint32_t request_type; // used to determine the type of request uint32_t request_type; // used to determine the type of request
RsGxsGroupId grpId; // id of the group RsGxsGroupId grpId; // id of the group
@ -137,9 +137,9 @@ class RsNxsGroupPublishKeyItem : public RsNxsItem
public: public:
explicit RsNxsGroupPublishKeyItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_GRP_PUBLISH_KEY_ITEM) { clear(); } explicit RsNxsGroupPublishKeyItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_GRP_PUBLISH_KEY_ITEM) { clear(); }
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
RsGxsGroupId grpId ; RsGxsGroupId grpId ;
RsTlvPrivateRSAKey private_key ; RsTlvPrivateRSAKey private_key ;
@ -181,9 +181,9 @@ public:
explicit RsNxsTransacItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_TRANSAC_ITEM) { clear(); } explicit RsNxsTransacItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_TRANSAC_ITEM) { clear(); }
virtual ~RsNxsTransacItem() {} virtual ~RsNxsTransacItem() {}
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
uint16_t transactFlag; uint16_t transactFlag;
uint32_t nItems; uint32_t nItems;
@ -209,9 +209,9 @@ public:
explicit RsNxsSyncGrpItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_GRP_ITEM) { clear();} explicit RsNxsSyncGrpItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_GRP_ITEM) { clear();}
virtual ~RsNxsSyncGrpItem() {} virtual ~RsNxsSyncGrpItem() {}
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
uint8_t flag; // request or response uint8_t flag; // request or response
uint32_t publishTs; // to compare to Ts of receiving peer's grp of same id uint32_t publishTs; // to compare to Ts of receiving peer's grp of same id
@ -235,7 +235,7 @@ public:
explicit RsNxsSessionKeyItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SESSION_KEY_ITEM) { clear(); } explicit RsNxsSessionKeyItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SESSION_KEY_ITEM) { clear(); }
virtual ~RsNxsSessionKeyItem() {} virtual ~RsNxsSessionKeyItem() {}
virtual void clear(); virtual void clear() override;
/// Session key encrypted for the whole group /// Session key encrypted for the whole group
/// ///
@ -258,9 +258,9 @@ public:
clear(); clear();
} }
virtual ~RsNxsEncryptedDataItem() {} virtual ~RsNxsEncryptedDataItem() {}
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
/// grpId of grp held by sending peer /// grpId of grp held by sending peer
/// ///
@ -279,35 +279,36 @@ class RsNxsGrp : public RsNxsItem
public: public:
explicit RsNxsGrp(uint16_t servtype) explicit RsNxsGrp(uint16_t servtype)
: RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_GRP_ITEM), grp(servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_GRP_ITEM)
, meta(servtype), metaData(NULL) , pos(0), count(0), meta(servtype), grp(servtype), metaData(NULL)
{ clear(); } { clear(); }
virtual ~RsNxsGrp() { delete metaData; } virtual ~RsNxsGrp() { delete metaData; }
RsNxsGrp* clone() const; RsNxsGrp* clone() const;
virtual void clear(); virtual void clear() override;
virtual void serial_process( RsGenericSerializer::SerializeJob j, virtual void serial_process( RsGenericSerializer::SerializeJob j,
RsGenericSerializer::SerializeContext& ctx ); RsGenericSerializer::SerializeContext& ctx ) override;
RsGxsGroupId grpId; /// group Id, needed to complete version Id (ncvi) uint8_t pos; /// used for splitting up grp
static int refcount; uint8_t count; /// number of split up messages
RsTlvBinaryData grp; /// actual group data RsGxsGroupId grpId; /// group Id, needed to complete version Id (ncvi)
uint8_t pos; /// used for splitting up grp static int refcount;
uint8_t count; /// number of split up messages
/*! /*!
* This should contains all data * This should contains all data
* which is not specific to the Gxs service data * which is not specific to the Gxs service data
*/ */
// This is the binary data for the group meta that is sent to friends. It *should not* contain any private // This is the binary data for the group meta that is sent to friends. It *should not* contain any private
// key parts. This is ensured in RsGenExchange // key parts. This is ensured in RsGenExchange
RsTlvBinaryData meta; RsTlvBinaryData meta;
// Deserialised metaData, this is not serialised by the serialize() method. So it may contain private key parts in some cases. RsTlvBinaryData grp; /// actual group data
RsGxsGrpMetaData* metaData;
// Deserialised metaData, this is not serialised by the serialize() method. So it may contain private key parts in some cases.
RsGxsGrpMetaData* metaData;
}; };
/*! /*!
@ -326,9 +327,9 @@ public:
explicit RsNxsSyncMsgReqItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_MSG_REQ_ITEM) { clear(); } explicit RsNxsSyncMsgReqItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_MSG_REQ_ITEM) { clear(); }
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
RsGxsGroupId grpId; RsGxsGroupId grpId;
uint8_t flag; uint8_t flag;
@ -350,9 +351,9 @@ public:
static const uint8_t FLAG_USE_SYNC_HASH; static const uint8_t FLAG_USE_SYNC_HASH;
explicit RsNxsSyncMsgItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_MSG_ITEM) { clear(); } explicit RsNxsSyncMsgItem(uint16_t servtype) : RsNxsItem(servtype, RS_PKT_SUBTYPE_NXS_SYNC_MSG_ITEM) { clear(); }
virtual void clear(); virtual void clear() override;
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
uint8_t flag; // response/req uint8_t flag; // response/req
RsGxsGroupId grpId; RsGxsGroupId grpId;
@ -374,10 +375,10 @@ struct RsNxsMsg : RsNxsItem
{ clear(); } { clear(); }
virtual ~RsNxsMsg() { delete metaData; } virtual ~RsNxsMsg() { delete metaData; }
virtual void serial_process( RsGenericSerializer::SerializeJob j, virtual void clear() override;
RsGenericSerializer::SerializeContext& ctx );
virtual void clear(); virtual void serial_process( RsGenericSerializer::SerializeJob j,
RsGenericSerializer::SerializeContext& ctx ) override;
uint8_t pos; /// used for splitting up msg uint8_t pos; /// used for splitting up msg
uint8_t count; /// number of split up messages uint8_t count; /// number of split up messages
@ -411,10 +412,10 @@ public:
: RsNxsItem(servtype, RS_PKT_SUBTYPE_EXT_SEARCH_REQ) : RsNxsItem(servtype, RS_PKT_SUBTYPE_EXT_SEARCH_REQ)
, nHops(0), token(0), serviceSearchItem(servtype), expiration(0) , nHops(0), token(0), serviceSearchItem(servtype), expiration(0)
{} {}
virtual ~RsNxsSearchReqItem() {} virtual ~RsNxsSearchReqItem() {}
virtual void clear() {} virtual void clear() override {}
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx); virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx) override;
uint8_t nHops; /// how many peers to jump to uint8_t nHops; /// how many peers to jump to
uint32_t token; // search token uint32_t token; // search token
@ -423,6 +424,8 @@ public:
}; };
#ifdef UNUSED_CODE
/*! /*!
* Used to respond to a RsGrpSearchReq * Used to respond to a RsGrpSearchReq
* with grpId/MsgIds that satisfy search request * with grpId/MsgIds that satisfy search request
@ -471,8 +474,6 @@ public:
uint32_t expiration; // expiration date uint32_t expiration; // expiration date
}; };
#ifndef UNUSED_CODE
class RsNxsDeleteMsg class RsNxsDeleteMsg
{ {
public: public: