FreeCalypso > hg > freecalypso-tools
view miscutil/fc-pulse-dtr.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 | 5b8287c655cf |
children |
line wrap: on
line source
/* * This utility opens a serial port, asserts DTR for 50 ms, then negates it * and exits. It is intended for use with FreeCalypso DUART28C adapters. */ #include <sys/types.h> #include <sys/file.h> #include <sys/ioctl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> main(argc, argv) char **argv; { int target_fd; int mctl_arg = TIOCM_DTR; if (argc != 2) { fprintf(stderr, "usage: %s ttyname\n", argv[0]); exit(1); } target_fd = open(argv[1], O_RDWR|O_NONBLOCK); if (target_fd < 0) { perror(argv[1]); exit(1); } ioctl(target_fd, TIOCMBIS, &mctl_arg); usleep(50000); ioctl(target_fd, TIOCMBIC, &mctl_arg); exit(0); }