Skip to content

Commit

Permalink
[DEBUG] DO NOT MERGE: dump corrupted buffer
Browse files Browse the repository at this point in the history
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
  • Loading branch information
fabbione committed Oct 13, 2019
1 parent e981fdd commit fbc01fe
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions libknet/threads_rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,16 @@ static int pckt_defrag(knet_handle_t knet_h, struct knet_header *inbuf, ssize_t
return 1;
}

static void dump_hex(const unsigned char *buf, ssize_t len)
{
int i = 0;
printf("Dumping: %zd len\n", len);
for (i = 0; i < len; i++) {
printf("%x ", buf[i]);
}
printf("Dumped: %d\n", i);
}

static void _parse_recv_from_links(knet_handle_t knet_h, int sockfd, const struct knet_mmsghdr *msg)
{
int err = 0, savederrno = 0;
Expand Down Expand Up @@ -360,7 +370,7 @@ static void _parse_recv_from_links(knet_handle_t knet_h, int sockfd, const struc

if (!_seq_num_lookup(src_host, inbuf->khp_data_seq_num, 0, 0)) {
if (src_host->link_handler_policy != KNET_LINK_POLICY_ACTIVE) {
log_debug(knet_h, KNET_SUB_RX, "Packet has already been delivered");
log_debug(knet_h, KNET_SUB_RX, "Packet has already been delivered: %u", inbuf->khp_data_seq_num);
}
return;
}
Expand All @@ -386,14 +396,16 @@ static void _parse_recv_from_links(knet_handle_t knet_h, int sockfd, const struc
}

if (inbuf->khp_data_len != len - KNET_HEADER_DATA_SIZE) {
log_debug(knet_h, KNET_SUB_RX, "BAD LEN ON RX AFTER DEFRAG: EXPECTED: %zu RECEIVED: %u (frags: %u)!!!", len - KNET_HEADER_DATA_SIZE, inbuf->khp_data_len, inbuf->khp_data_frag_num);
log_debug(knet_h, KNET_SUB_RX, "BAD LEN ON RX AFTER DEFRAG: EXPECTED: %zu RECEIVED: %u (frags: %u) seq: %u!!!", len - KNET_HEADER_DATA_SIZE, inbuf->khp_data_len, inbuf->khp_data_frag_num, inbuf->khp_data_seq_num);
sleep(1);
assert(0);
}

chksum = compute_chsum(inbuf->khp_data_userdata, len - KNET_HEADER_DATA_SIZE);
if (chksum != inbuf->khp_data_chksum) {
log_debug(knet_h, KNET_SUB_RX, "BAD CHECKSUM ON RX AFTER DEFRAG: CALCULATED: %u RECEIVED: %u len: %u (frags: %u)!!!", chksum, inbuf->khp_data_chksum, inbuf->khp_data_len, inbuf->khp_data_frag_num);
log_debug(knet_h, KNET_SUB_RX, "BAD CHECKSUM ON RX AFTER DEFRAG: CALCULATED: %u RECEIVED: %u len: %u (frags: %u) seq: %u!!!", chksum, inbuf->khp_data_chksum, inbuf->khp_data_len, inbuf->khp_data_frag_num, inbuf->khp_data_seq_num);
sleep(1);
dump_hex(inbuf->khp_data_userdata, len - KNET_HEADER_DATA_SIZE);
sleep(1);
assert(0);
}
Expand Down

0 comments on commit fbc01fe

Please sign in to comment.