aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_api.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-11-30 14:18:21 +0000
committerChristian Grothoff <christian@grothoff.org>2010-11-30 14:18:21 +0000
commitc645def9baefa400bd2089248f297259750996c4 (patch)
treec12a588712f845b9206b25eee318d77e727b95c9 /src/transport/transport_api.c
parente14f682ca1de9f26c90420dd33ffad215bfef45c (diff)
downloadgnunet-c645def9baefa400bd2089248f297259750996c4.tar.gz
gnunet-c645def9baefa400bd2089248f297259750996c4.zip
fix
Diffstat (limited to 'src/transport/transport_api.c')
-rw-r--r--src/transport/transport_api.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c
index 10a023dcf..6ac64260b 100644
--- a/src/transport/transport_api.c
+++ b/src/transport/transport_api.c
@@ -1587,13 +1587,21 @@ demultiplexer (void *cls, const struct GNUNET_MessageHeader *msg)
1587 n = neighbour_add (h, 1587 n = neighbour_add (h,
1588 &cim->id); 1588 &cim->id);
1589 if (n == NULL) 1589 if (n == NULL)
1590 return; 1590 {
1591 GNUNET_break (0);
1592 return;
1593 }
1591 GNUNET_break (n->is_connected == GNUNET_NO); 1594 GNUNET_break (n->is_connected == GNUNET_NO);
1595 if (ntohl ((&cim->ats)[ntohl (cim->ats_count)].type) != GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR)
1596 {
1597 GNUNET_break (0);
1598 return;
1599 }
1592 n->is_connected = GNUNET_YES; 1600 n->is_connected = GNUNET_YES;
1593 if (h->nc_cb != NULL) 1601 if (h->nc_cb != NULL)
1594 h->nc_cb (h->cls, &n->id, 1602 h->nc_cb (h->cls, &n->id,
1595 &(cim->ats), 1603 &(cim->ats),
1596 cim->ats_count); 1604 ntohl (cim->ats_count));
1597 break; 1605 break;
1598 case GNUNET_MESSAGE_TYPE_TRANSPORT_DISCONNECT: 1606 case GNUNET_MESSAGE_TYPE_TRANSPORT_DISCONNECT:
1599 if (size != sizeof (struct DisconnectInfoMessage)) 1607 if (size != sizeof (struct DisconnectInfoMessage))
@@ -1684,11 +1692,16 @@ demultiplexer (void *cls, const struct GNUNET_MessageHeader *msg)
1684 GNUNET_break (0); 1692 GNUNET_break (0);
1685 break; 1693 break;
1686 } 1694 }
1695 if (ntohl ((&im->ats)[ntohl(im->ats_count)].type) != GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR)
1696 {
1697 GNUNET_break (0);
1698 return;
1699 }
1687 if (h->rec != NULL) 1700 if (h->rec != NULL)
1688 h->rec (h->cls, &im->peer, 1701 h->rec (h->cls, &im->peer,
1689 imm, 1702 imm,
1690 &im->ats, 1703 &im->ats,
1691 im->ats_count); 1704 ntohl (im->ats_count));
1692 break; 1705 break;
1693 default: 1706 default:
1694 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1707 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,