From f444f2495bc2baa0ec5e43fc7f6d7655cf9383a7 Mon Sep 17 00:00:00 2001 From: Pirmin Walthert Date: Fri, 29 May 2020 11:28:57 +0200 Subject: [PATCH] res_pjsip_logger.c: correct the return value checks when writing to pcap files fwrite() does return the number of elements written and not the number of bytes. However asterisk is currently comparing the return value to the size of the written element what means that asterisk logs five WARNING messages on every packet written to the pcap file. This patch changes the code to check for the correct value, which will always be 1. ASTERISK-28921 #close Change-Id: I2455032d9cb4c5a500692923f9e2a22e68b08fc2 --- res/res_pjsip_logger.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/res/res_pjsip_logger.c b/res/res_pjsip_logger.c index cc79f61718..8380bd6fb1 100644 --- a/res/res_pjsip_logger.c +++ b/res/res_pjsip_logger.c @@ -246,19 +246,19 @@ static void pjsip_logger_write_to_pcap(struct pjsip_logger_session *session, con /* We lock the logger session since we're writing these out in parts */ ao2_wrlock(session); if (session->pcap_file) { - if (fwrite(&pcap_record_header, sizeof(struct pcap_record_header), 1, session->pcap_file) != sizeof(struct pcap_record_header)) { + if (fwrite(&pcap_record_header, sizeof(struct pcap_record_header), 1, session->pcap_file) != 1) { ast_log(LOG_WARNING, "Writing PCAP header failed: %s\n", strerror(errno)); } - if (fwrite(&pcap_ethernet_header, sizeof(struct pcap_ethernet_header), 1, session->pcap_file) != sizeof(struct pcap_ethernet_header)) { + if (fwrite(&pcap_ethernet_header, sizeof(struct pcap_ethernet_header), 1, session->pcap_file) != 1) { ast_log(LOG_WARNING, "Writing ethernet header to pcap failed: %s\n", strerror(errno)); } - if (fwrite(pcap_ip_header, pcap_ip_header_len, 1, session->pcap_file) != pcap_ip_header_len) { + if (fwrite(pcap_ip_header, pcap_ip_header_len, 1, session->pcap_file) != 1) { ast_log(LOG_WARNING, "Writing IP header to pcap failed: %s\n", strerror(errno)); } - if (fwrite(&pcap_udp_header, sizeof(struct pcap_udp_header), 1, session->pcap_file) != sizeof(struct pcap_udp_header)) { + if (fwrite(&pcap_udp_header, sizeof(struct pcap_udp_header), 1, session->pcap_file) != 1) { ast_log(LOG_WARNING, "Writing UDP header to pcap failed: %s\n", strerror(errno)); } - if (fwrite(msg, msg_len, 1, session->pcap_file) != msg_len) { + if (fwrite(msg, msg_len, 1, session->pcap_file) != 1) { ast_log(LOG_WARNING, "Writing UDP payload to pcap failed: %s\n", strerror(errno)); } } -- 2.47.2