Skip to content

Commit 03bd7fb

Browse files
committed
Added error handling to failed calls to get peer.
1 parent faec9c9 commit 03bd7fb

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

‎python-types.c

+22-3
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,14 @@ tgl_Msg_getsrc (tgl_Msg *self, void *closure)
588588
PyObject *ret;
589589

590590
if(tgl_get_peer_type (self->msg->from_id)) {
591-
ret = tgl_Peer_FromTglPeer(tgl_peer_get (TLS, self->msg->from_id));
591+
tgl_peer_t *peer = tgl_peer_get (TLS, self->msg->from_id);
592+
if(peer)
593+
ret = tgl_Peer_FromTglPeer(peer);
594+
else {
595+
PyErr_SetString(PeerError, "Cannot Retrieve Peer. Internal tgl error");
596+
Py_RETURN_NONE;
597+
}
598+
592599
} else {
593600
Py_RETURN_NONE;
594601
}
@@ -603,7 +610,13 @@ tgl_Msg_getdest (tgl_Msg *self, void *closure)
603610
PyObject *ret;
604611

605612
if(tgl_get_peer_type (self->msg->to_id)) {
606-
ret = tgl_Peer_FromTglPeer(tgl_peer_get (TLS, self->msg->to_id));
613+
tgl_peer_t *peer = tgl_peer_get (TLS, self->msg->to_id);
614+
if(peer)
615+
ret = tgl_Peer_FromTglPeer(peer);
616+
else {
617+
PyErr_SetString(PeerError, "Cannot Retrieve Peer. Internal tgl error");
618+
Py_RETURN_NONE;
619+
}
607620
} else {
608621
Py_RETURN_NONE;
609622
}
@@ -709,7 +722,13 @@ tgl_Msg_getfwd_src (tgl_Msg *self, void *closure)
709722
PyObject *ret;
710723

711724
if(tgl_get_peer_type (self->msg->fwd_from_id)) {
712-
ret = tgl_Peer_FromTglPeer(tgl_peer_get (TLS, self->msg->fwd_from_id));
725+
tgl_peer_t *peer = tgl_peer_get (TLS, self->msg->fwd_from_id);
726+
if(peer)
727+
ret = tgl_Peer_FromTglPeer(peer);
728+
else {
729+
PyErr_SetString(PeerError, "Cannot Retrieve Peer. Internal tgl error");
730+
Py_RETURN_NONE;
731+
}
713732
} else {
714733
Py_RETURN_NONE;
715734
}

0 commit comments

Comments
 (0)