annotate librftab/smallconv.c @ 921:74d284add54d

fc-fsio: guard against bogus readdir results from the target If the FFS being operated on contains SE K2x0 extended filenames, readdir will return strings that are bad for printing. We need to guard against this possibility, and also against possible other bogosity that could be sent by other alien firmwares.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 31 Dec 2022 22:55:23 +0000
parents b73c21a2148f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
142
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * /gsm/rf/afcdac and /gsm/rf/stdmap each store a single 16-bit value,
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * and are not tables in the rftw/rftr sense, hence the code in rftablewr.c
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * does not handle these two. However, in fc-cal2text we would like to
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * handle their conversion from binary to ASCII the same way as the bigger
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * tables, hence the two functions in this module.
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 */
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <sys/types.h>
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <stdio.h>
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include <stdint.h>
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include <endian.h>
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 void
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 write_afcdac_ascii(bin, outf)
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 uint16_t *bin;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 FILE *outf;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 {
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 int i;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 i = le16toh(*bin);
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 if (i >= 32768)
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 i -= 65536;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 fprintf(outf, "%d\n", i);
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 }
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 void
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 write_stdmap_ascii(bin, outf)
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 uint16_t *bin;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 FILE *outf;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 {
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 int i;
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 i = le16toh(*bin);
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 fprintf(outf, "0x%04X\n", i);
d41edd329670 fc-cal2text utility written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 }