diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-11-30 14:18:21 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-11-30 14:18:21 +0000 |
commit | c645def9baefa400bd2089248f297259750996c4 (patch) | |
tree | c12a588712f845b9206b25eee318d77e727b95c9 /src/transport/transport_api.c | |
parent | e14f682ca1de9f26c90420dd33ffad215bfef45c (diff) | |
download | gnunet-c645def9baefa400bd2089248f297259750996c4.tar.gz gnunet-c645def9baefa400bd2089248f297259750996c4.zip |
fix
Diffstat (limited to 'src/transport/transport_api.c')
-rw-r--r-- | src/transport/transport_api.c | 19 |
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, |