FreeCalypso > hg > fc-magnetite
annotate src/aci2/mfw/mfw_simi.h @ 516:1ed9de6c90bd
src/g23m-gsm/sms/sms_for.c: bogus malloc removed
The new error handling code that was not present in TCS211 blob version
contains a malloc call that is bogus for 3 reasons:
1) The memory allocation in question is not needed in the first place;
2) libc malloc is used instead of one of the firmware's proper ways;
3) The memory allocation is made inside a function and then never freed,
i.e., a memory leak.
This bug was caught in gcc-built FreeCalypso fw projects (Citrine
and Selenite) because our gcc environment does not allow any use of
libc malloc (any reference to malloc produces a link failure),
but this code from TCS3.2 is wrong even for Magnetite: if this code
path is executed repeatedly over a long time, the many small allocations
made by this malloc call without a subsequent free will eventually
exhaust the malloc heap provided by the TMS470 environment, malloc will
start returning NULL, and the bogus code will treat it as an error.
Because the memory allocation in question is not needed at all,
the fix entails simply removing it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 22 Jul 2018 06:04:49 +0000 |
parents | 93999a60b835 |
children |
rev | line source |
---|---|
3
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +--------------------------------------------------------------------+ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | PROJECT: GSM-MFW (?) $Workfile:: mfw_simi.h $| |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | $Author:: Vo $Revision:: 1 $| |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 | CREATED: 14.10.98 $Modtime:: 20.03.00 11:48 $| |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | STATE : code | |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 +--------------------------------------------------------------------+ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 PURPOSE : Internal definitions for SIM management of MMI framework |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 */ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #ifndef DEF_MFW_SIMI_HEADER |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #define DEF_MFW_SIMI_HEADER |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 #include "message.h" |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #include "prim.h" |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #include "aci_cmh.h" |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 #define NO_ALLOCATED 0 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #define ALLOCATED_AND_DEACTIVATED 2 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define ALLOCATED_AND_ACTIVATED 3 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #define SIM_UBLK_ERROR 0 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #define SIM_UBLK_OK 1 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #define SIM_PIN2_FAILURE 17 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #define SIM_PUK2_FAILURE 18 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #define MFW_LEN_PLMN_NTRY 3 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /* SIM configuration information */ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 typedef struct |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 { |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 UBYTE deper_key [16]; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 UBYTE phase; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 UBYTE oper_mode; /* SIM card functionality */ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 UBYTE pref_lang[5]; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 UBYTE access_acm; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 UBYTE access_acmmax; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 UBYTE access_puct; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 UBYTE sim_gidl1[5]; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 UBYTE sim_gidl2[5]; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 } T_MFW_SIM_CONFIG; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /* |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * SIM Control Block |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 */ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 typedef struct |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 { |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 T_MFW_EVENT emask; /* events of interest */ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 T_MFW_EVENT event; /* current event */ |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 T_MFW_CB handler; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 T_MFW_SIM_PARA para; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 } T_MFW_SIM; |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 EXTERN T_MFW_HND sim_install (T_MFW_HDR *w, |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 T_MFW_HDR *h, |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 T_MFW_SIM *sim); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 EXTERN T_MFW_RES sim_remove (T_MFW_HDR *h); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 EXTERN int sim_sign_exec (T_MFW_HDR * hdr, |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 T_MFW_EVENT event, |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 T_MFW_SIM_PARA *para); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 EXTERN void sim_spn_req (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 EXTERN void sim_ok_cfun (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 EXTERN void sim_error_cfun (UBYTE reason); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 EXTERN void sim_ok_cpin (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 EXTERN void sim_error_cpin (T_ACI_CME_ERR reason); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 EXTERN void sim_ok_cpinc (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 EXTERN void sim_error_cpinc (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 EXTERN void sim_ok_cpind (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 EXTERN void sim_error_cpind (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 EXTERN void sim_ok_cpine (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 EXTERN void sim_error_cpine (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 EXTERN UBYTE sim_check_service (UBYTE nr, UBYTE * serv_table); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 EXTERN T_MFW sim_status_check (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 EXTERN void decode_imsi (UBYTE simlck[], |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 UBYTE imsi_id[LONG_NAME]); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 EXTERN void sim_mmi_parameter (T_SIM_ACTIVATE_CNF *sim_activate_cnf); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 EXTERN void sim_ss_unblock (UBYTE result, T_ACI_CME_ERR reason); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 EXTERN void sim_simlock_timeout (void); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 EXTERN T_MFW sim_simlock_status (UBYTE status); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 EXTERN UBYTE sim_cvtPINstatus (T_ACI_PVRF_STAT ps, UBYTE type); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 EXTERN void sim_gid1_cnf (SHORT error, UBYTE *data); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 EXTERN void sim_gid2_cnf (SHORT error, UBYTE *data); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 EXTERN void sim_pin_ident (UBYTE id); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 EXTERN T_MFW sim_check_imsi_digit (UBYTE pcm_imsi, UBYTE sim_imsi); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 EXTERN void sim_mmi_update_parameter(T_SIM_ACTIVATE_IND *sim_act_ind); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 EXTERN void sim_sat_file_update (USHORT dataId); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 EXTERN void sim_read_sst_cnf (SHORT error, UBYTE *data); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 EXTERN void sim_read_lp_cnf (SHORT error, T_ACI_LAN_SUP *CLang); |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 |
93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 #endif |