Browse Source

handle nullptr gracefully

synchronous
Volker Birk 5 years ago
parent
commit
c46b8ec4f8
  1. 32
      callback_dispatcher.cc

32
callback_dispatcher.cc

@ -88,10 +88,12 @@ namespace pEp {
PEP_STATUS CallbackDispatcher::_messageToSend(::message *msg)
{
for (auto target : targets) {
auto _msg = ::message_dup(msg);
if (!_msg)
return PEP_OUT_OF_MEMORY;
::message *_msg = nullptr;
if (msg) {
_msg = ::message_dup(msg);
if (!_msg)
return PEP_OUT_OF_MEMORY;
}
assert(target.messageToSend);
target.messageToSend(_msg);
}
@ -104,16 +106,20 @@ namespace pEp {
{
for (auto target : targets) {
if (target.notifyHandshake) {
auto _me = ::identity_dup(me);
if (!_me)
return PEP_OUT_OF_MEMORY;
auto _partner = ::identity_dup(partner);
if (!_partner) {
free_identity(_me);
return PEP_OUT_OF_MEMORY;
::pEp_identity *_me = nullptr;
if (me) {
_me = ::identity_dup(me);
if (!_me)
return PEP_OUT_OF_MEMORY;
}
::pEp_identity *_partner = nullptr;
if (partner) {
_partner = ::identity_dup(partner);
if (!_partner) {
free_identity(_me);
return PEP_OUT_OF_MEMORY;
}
}
target.notifyHandshake(_me, _partner, signal);
}
}

Loading…
Cancel
Save