annotate target-utils/loadagent/sertimeout.c @ 1011:6d9b10633f10 default tip

etmsync Pirelli IMEI retrieval: fix poor use of printf() Bug reported by Vadim Yanitskiy <fixeria@osmocom.org>: the construct where a static-allocated string was passed to printf() without any format arguments causes newer compilers to report a security problem. Given that formatted output is not needed here, just fixed string output, change printf() to fputs(), and direct the error message to stderr while at it.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 May 2024 17:29:57 +0000
parents 880c6d31e487
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
644
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * Here we are going to implement a function for serial input with a timeout.
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 */
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 #include <stdlib.h>
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 serial_in_timeout(count)
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 unsigned count;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 {
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 int c;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 do
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 c = serial_in_poll();
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 while (c < 0 && --count);
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 return c;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 }
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 void
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 cmd_sertimeout(argbulk)
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 char *argbulk;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 {
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 char *argv[2];
645
880c6d31e487 loadagent sertimeout calibration command simplified
Mychaela Falconia <falcon@freecalypso.org>
parents: 644
diff changeset
23 int count;
644
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 if (parse_args(argbulk, 1, 1, argv, 0) < 0)
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 return;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 count = atoi(argv[0]);
645
880c6d31e487 loadagent sertimeout calibration command simplified
Mychaela Falconia <falcon@freecalypso.org>
parents: 644
diff changeset
28 serial_in_timeout(count);
644
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 }