prinet-proxy: Fix memory leak

Incorrect encryption size for keepalive package. don't include
macbytes in length. Tweak length afterwards with result of
encryption function
This commit is contained in:
icex2
2021-02-01 22:10:34 +01:00
parent a3c0fc3303
commit a81e886f0f
3 changed files with 5 additions and 3 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ static void* _pumpnet_prinet_proxy_keepalive_proc(void* ctx)
keepalive_packet->nounce,
sizeof(keepalive_packet->nounce),
keepalive_packet->data,
pumpnet_prinet_proxy_packet_get_data_len(keepalive_packet),
PUMPNET_PRINET_PROXY_PACKET_KEEPALIVE_SIZE,
keepalive_packet->data);
keepalive_packet->length = pumpnet_prinet_proxy_packet_get_header_len() + enc_data_len;
+2 -2
View File
@@ -17,7 +17,7 @@ struct pumpnet_prinet_proxy_packet_data_keepalive {
static const size_t HEADER_SIZE = sizeof(uint32_t) + sizeof(uint8_t) * SEC_PRINET_NOUNCE_LEN;
static const uint32_t PACKET_KEEPALIVE_ID = 0x3000000;
static const uint32_t PACKET_KEEPALIVE_SIZE =
const uint32_t PUMPNET_PRINET_PROXY_PACKET_KEEPALIVE_SIZE =
sizeof(struct pumpnet_prinet_proxy_packet_data) +
sizeof(struct pumpnet_prinet_proxy_packet_data_keepalive);
@@ -61,7 +61,7 @@ struct pumpnet_prinet_proxy_packet* pumpnet_prinet_proxy_packet_create_keepalive
struct pumpnet_prinet_proxy_packet* packet;
struct pumpnet_prinet_proxy_packet_data* data;
packet = pumpnet_prinet_proxy_packet_alloc_response(PACKET_KEEPALIVE_SIZE);
packet = pumpnet_prinet_proxy_packet_alloc_response(PUMPNET_PRINET_PROXY_PACKET_KEEPALIVE_SIZE);
util_rand_gen_bytes(packet->nounce, SEC_PRINET_NOUNCE_LEN);
+2
View File
@@ -11,6 +11,8 @@ struct pumpnet_prinet_proxy_packet {
uint8_t data[];
} __attribute__((__packed__));
extern const uint32_t PUMPNET_PRINET_PROXY_PACKET_KEEPALIVE_SIZE;
struct pumpnet_prinet_proxy_packet* pumpnet_prinet_proxy_packet_alloc(size_t data_len);
struct pumpnet_prinet_proxy_packet* pumpnet_prinet_proxy_packet_alloc_response(size_t data_len);