diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-02-01 14:59:30 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-02-01 14:59:30 +0000 |
commit | 2310f240b57d879b945924e300211b637cd29096 (patch) | |
tree | 01cd6543be6eefc25336a228cddae17bd996793e /src | |
parent | 53e8a4a55381c9a2b085925b155fd485f3013c8d (diff) | |
download | gnunet-2310f240b57d879b945924e300211b637cd29096.tar.gz gnunet-2310f240b57d879b945924e300211b637cd29096.zip |
fix 2 crashes in blacklisting api
- client transmit handle was not sent to NULL after sending
- BlacklistMessage was not checked for NULL
Diffstat (limited to 'src')
-rw-r--r-- | src/transport/transport_api_blacklist.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/transport/transport_api_blacklist.c b/src/transport/transport_api_blacklist.c index b3fc79def..b1c536a9d 100644 --- a/src/transport/transport_api_blacklist.c +++ b/src/transport/transport_api_blacklist.c | |||
@@ -103,7 +103,9 @@ query_handler (void *cls, const struct GNUNET_MessageHeader *msg) | |||
103 | struct GNUNET_TRANSPORT_Blacklist *br = cls; | 103 | struct GNUNET_TRANSPORT_Blacklist *br = cls; |
104 | const struct BlacklistMessage *bm; | 104 | const struct BlacklistMessage *bm; |
105 | 105 | ||
106 | if ((ntohs (msg->size) != sizeof (struct BlacklistMessage)) || | 106 | GNUNET_assert (br != NULL); |
107 | if ((NULL == msg) || | ||
108 | (ntohs (msg->size) != sizeof (struct BlacklistMessage)) || | ||
107 | (ntohs (msg->type) != GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_QUERY)) | 109 | (ntohs (msg->type) != GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_QUERY)) |
108 | { | 110 | { |
109 | reconnect (br); | 111 | reconnect (br); |
@@ -151,6 +153,7 @@ transmit_blacklist_init (void *cls, size_t size, void *buf) | |||
151 | req.size = htons (sizeof (struct GNUNET_MessageHeader)); | 153 | req.size = htons (sizeof (struct GNUNET_MessageHeader)); |
152 | req.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT); | 154 | req.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT); |
153 | memcpy (buf, &req, sizeof (req)); | 155 | memcpy (buf, &req, sizeof (req)); |
156 | br->th = NULL; | ||
154 | receive (br); | 157 | receive (br); |
155 | return sizeof (req); | 158 | return sizeof (req); |
156 | } | 159 | } |
@@ -201,6 +204,7 @@ transmit_blacklist_reply (void *cls, size_t size, void *buf) | |||
201 | req.is_allowed = htonl (br->cb (br->cb_cls, &br->peer)); | 204 | req.is_allowed = htonl (br->cb (br->cb_cls, &br->peer)); |
202 | req.peer = br->peer; | 205 | req.peer = br->peer; |
203 | memcpy (buf, &req, sizeof (req)); | 206 | memcpy (buf, &req, sizeof (req)); |
207 | br->th = NULL; | ||
204 | receive (br); | 208 | receive (br); |
205 | return sizeof (req); | 209 | return sizeof (req); |
206 | } | 210 | } |