FreeCalypso > hg > freecalypso-tools
view libpwon/etmoff.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 | ab54957dbe35 |
children |
line wrap: on
line source
/* * This libpwon module implements -Petmoff mode: set the baud rate to 115200 * and send out ETM command doing Iota poweroff, triggering a VRPC reboot cycle * on the USB-charging phone. The "wakeup shot" logic is a copy of what we do * in rvinterf. */ #include <sys/types.h> #include <unistd.h> extern int target_fd; static u_char wakeup_shot[64]; static u_char etm_devoff_pkt[9] = {0x02, 0x14, 0x01, 0x67, 0x1E, 0x01, 0x00, 0x79, 0x02}; void bootctrl_do_etmoff() { set_fixed_baudrate("115200"); set_serial_nonblock(0); write(target_fd, wakeup_shot, sizeof wakeup_shot); usleep(100000); write(target_fd, etm_devoff_pkt, sizeof etm_devoff_pkt); }