changeset 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 a96cb97b66a2
children ec7e23d5151f
files uptools/atcmd/smsend_main.c uptools/atcmd/smsend_multmain.c
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/uptools/atcmd/smsend_main.c	Thu Aug 31 19:38:18 2023 +0000
+++ b/uptools/atcmd/smsend_main.c	Fri Sep 01 07:33:51 2023 +0000
@@ -188,7 +188,8 @@
 	if (msgtext_gsmlen <= 160) {
 		common_init();
 		prep_for_pdu_mode();
-		send_in_pdu_mode(dest_addr, msgtext_gsm7, msgtext_gsmlen, 0, 0);
+		send_in_pdu_mode(dest_addr, msgtext_gsm7, msgtext_gsmlen,
+				 (u_char *) 0, 0);
 		if (sms_write_mode == 1)
 			sendafterwr_process();
 		if (concat_enable && !concat_quiet)
@@ -249,7 +250,8 @@
 	if (msgtext_unilen <= 70) {
 		common_init();
 		prep_for_pdu_mode();
-		send_pdu_ucs2(dest_addr, msgtext_uni, msgtext_unilen, 0, 0);
+		send_pdu_ucs2(dest_addr, msgtext_uni, msgtext_unilen,
+			      (u_char *) 0, 0);
 		if (sms_write_mode == 1)
 			sendafterwr_process();
 		if (concat_enable && !concat_quiet)
--- a/uptools/atcmd/smsend_multmain.c	Thu Aug 31 19:38:18 2023 +0000
+++ b/uptools/atcmd/smsend_multmain.c	Fri Sep 01 07:33:51 2023 +0000
@@ -151,7 +151,8 @@
 	if (rc == -2)
 		goto toolong;
 	init_send_process();
-	send_in_pdu_mode(dest_addr, msgtext_gsm7, msgtext_gsmlen, 0, 0);
+	send_in_pdu_mode(dest_addr, msgtext_gsm7, msgtext_gsmlen,
+			 (u_char *) 0, 0);
 	return(0);
 }
 
@@ -174,7 +175,7 @@
 		exit(ERROR_USAGE);
 	}
 	init_send_process();
-	send_pdu_ucs2(dest_addr, msgtext_uni, msgtext_unilen, 0, 0);
+	send_pdu_ucs2(dest_addr, msgtext_uni, msgtext_unilen, (u_char *) 0, 0);
 	return(0);
 }