diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2022-12-01 16:22:01 +0900 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2022-12-01 16:22:01 +0900 |
commit | 1d69c5149b34fab829fde82e0bf14ab6652051bd (patch) | |
tree | cc592da435e4f8a0946cbf2700dad45f9f2c2d4b | |
parent | 5e746cc2d4f4f17b64f1322e28efa7f65c85cab4 (diff) | |
download | gnunet-1d69c5149b34fab829fde82e0bf14ab6652051bd.tar.gz gnunet-1d69c5149b34fab829fde82e0bf14ab6652051bd.zip |
-fix pointer corruption bug
-rw-r--r-- | src/transport/gnunet-service-tng.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/transport/gnunet-service-tng.c b/src/transport/gnunet-service-tng.c index b21406a3a..c60c4b2ce 100644 --- a/src/transport/gnunet-service-tng.c +++ b/src/transport/gnunet-service-tng.c | |||
@@ -8250,8 +8250,7 @@ handle_dv_box (void *cls, const struct TransportDVBoxMessage *dvb) | |||
8250 | struct GNUNET_TIME_Absolute monotime; | 8250 | struct GNUNET_TIME_Absolute monotime; |
8251 | struct TransportDVBoxPayloadP ppay; | 8251 | struct TransportDVBoxPayloadP ppay; |
8252 | char body[hdr_len - sizeof(ppay)] GNUNET_ALIGN; | 8252 | char body[hdr_len - sizeof(ppay)] GNUNET_ALIGN; |
8253 | const struct GNUNET_MessageHeader *mh = | 8253 | const struct GNUNET_MessageHeader *mh; |
8254 | (const struct GNUNET_MessageHeader *) body; | ||
8255 | 8254 | ||
8256 | GNUNET_assert (hdr_len >= | 8255 | GNUNET_assert (hdr_len >= |
8257 | sizeof(ppay) + sizeof(struct GNUNET_MessageHeader)); | 8256 | sizeof(ppay) + sizeof(struct GNUNET_MessageHeader)); |
@@ -8263,7 +8262,7 @@ handle_dv_box (void *cls, const struct TransportDVBoxMessage *dvb) | |||
8263 | finish_cmc_handling (cmc); | 8262 | finish_cmc_handling (cmc); |
8264 | return; | 8263 | return; |
8265 | } | 8264 | } |
8266 | if (GNUNET_OK != dv_decrypt (&key, &body, | 8265 | if (GNUNET_OK != dv_decrypt (&key, body, |
8267 | &hdr[sizeof(ppay)], hdr_len - sizeof(ppay))) | 8266 | &hdr[sizeof(ppay)], hdr_len - sizeof(ppay))) |
8268 | { | 8267 | { |
8269 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 8268 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
@@ -8272,6 +8271,7 @@ handle_dv_box (void *cls, const struct TransportDVBoxMessage *dvb) | |||
8272 | finish_cmc_handling (cmc); | 8271 | finish_cmc_handling (cmc); |
8273 | return; | 8272 | return; |
8274 | } | 8273 | } |
8274 | mh = (const struct GNUNET_MessageHeader *) body; | ||
8275 | dv_key_clean (&key); | 8275 | dv_key_clean (&key); |
8276 | if (ntohs (mh->size) != sizeof(body)) | 8276 | if (ntohs (mh->size) != sizeof(body)) |
8277 | { | 8277 | { |