diff --git a/exchange/bitswap/message.c b/exchange/bitswap/message.c index b4739ec..92d3777 100644 --- a/exchange/bitswap/message.c +++ b/exchange/bitswap/message.c @@ -359,7 +359,7 @@ int ipfs_bitswap_wantlist_protobuf_decode(unsigned char* buffer, size_t buffer_l if (buffer_length == 0) return 1; - *output = (struct BitswapWantlist*) malloc(sizeof(struct BitswapWantlist)); + *output = ipfs_bitswap_wantlist_new(); if (*output == NULL) return 0; @@ -567,7 +567,7 @@ int ipfs_bitswap_message_protobuf_decode(const uint8_t* buffer, size_t buffer_le if (buffer_length == 0) return 1; - *output = (struct BitswapMessage*) malloc(sizeof(struct BitswapMessage)); + *output = (struct BitswapMessage*) ipfs_bitswap_message_new(); if (*output == NULL) return 0; diff --git a/exchange/bitswap/network.c b/exchange/bitswap/network.c index a3ba511..f7e3706 100644 --- a/exchange/bitswap/network.c +++ b/exchange/bitswap/network.c @@ -69,9 +69,11 @@ int ipfs_bitswap_network_handle_message(const struct IpfsNode* node, const struc return 0; // process the message // payload - what we want - for(int i = 0; i < message->payload->total; i++) { - struct Block* blk = (struct Block*)libp2p_utils_vector_get(message->payload, i); - node->exchange->HasBlock(node->exchange, blk); + if (message->payload != NULL) { + for(int i = 0; i < message->payload->total; i++) { + struct Block* blk = (struct Block*)libp2p_utils_vector_get(message->payload, i); + node->exchange->HasBlock(node->exchange, blk); + } } // wantlist - what they want if (message->wantlist != NULL && message->wantlist->entries != NULL && message->wantlist->entries->total > 0) {