FreeCalypso > hg > freecalypso-tools
view rvinterf/lowlevel/logsent.c @ 965:2969032bdfac
fcup-smsend[mult]: fix buglet in K&R C NULL pointer passing
The only 100% safe way to pass a NULL pointer as a function argument
in K&R C is to cast 0 to a pointer type; failing to do so may cause
mysterious bugs (invalid stack frames or garbage in argument registers)
on 64-bit machines. This issue has already been fixed in most of
FC host tools, but I just found some missed spots: passing of NULL UDH
to PDU encoding functions in fcup-smsend[mult] in the case of single
(not concatenated) SMS.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 01 Sep 2023 07:33:51 +0000 |
parents | fab04df64690 |
children |
line wrap: on
line source
/* * This module implements the logging of sent packets */ #include <sys/types.h> #include <stdio.h> #include <string.h> #include <strings.h> #include "../include/pktmux.h" #include "../include/limits.h" extern int no_output, verbose; extern FILE *logF; extern void output_line(); extern void output_cont(); extern void output_cont_logpref(); static void log_sent_ati(pkt, pktlen) u_char *pkt; { char buf[MAX_PKT_TO_TARGET*4+10]; strcpy(buf, "Sent to ATI: "); safe_print_trace(pkt + 1, pktlen - 1, buf + 13); output_line(buf); } void log_sent_packet(pkt, pktlen) u_char *pkt; { if (no_output && !logF) return; switch (pkt[0]) { case RVT_L23_HEADER: format_gpf_packet(pkt, pktlen, "Sent ", output_line, output_cont_logpref); return; case RVT_TM_HEADER: log_sent_tm(pkt, pktlen); return; case RVT_AT_HEADER: log_sent_ati(pkt, pktlen); return; case RVT_TCH_HEADER: if (verbose >= 2) { output_line("Sent TCH packet"); packet_hex_dump(pkt, pktlen, output_cont_logpref); } else { tch_inc_count_tx(); } return; default: output_line("Sent misc packet"); packet_hex_dump(pkt, pktlen, output_cont); } }