|
1 <html> |
|
2 |
|
3 <head> |
|
4 <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> |
|
5 <meta name=Generator content="Microsoft Word 10 (filtered)"> |
|
6 <title>Licensees need to update any overrides of CEikAppUi::HandleSystemEventL |
|
7 on the same pattern as Symbian will do</title> |
|
8 |
|
9 <style> |
|
10 <!-- |
|
11 /* Font Definitions */ |
|
12 @font-face |
|
13 {font-family:Courier; |
|
14 panose-1:2 7 4 9 2 2 5 2 4 4;} |
|
15 /* Style Definitions */ |
|
16 p.MsoNormal, li.MsoNormal, div.MsoNormal |
|
17 {margin:0cm; |
|
18 margin-bottom:.0001pt; |
|
19 font-size:12.0pt; |
|
20 font-family:"Times New Roman";} |
|
21 a:link, span.MsoHyperlink |
|
22 {color:blue; |
|
23 text-decoration:underline;} |
|
24 a:visited, span.MsoHyperlinkFollowed |
|
25 {color:purple; |
|
26 text-decoration:underline;} |
|
27 pre |
|
28 {margin:0cm; |
|
29 margin-bottom:.0001pt; |
|
30 font-size:10.0pt; |
|
31 font-family:"Courier New";} |
|
32 @page Section1 |
|
33 {size:612.0pt 792.0pt; |
|
34 margin:72.0pt 72.0pt 72.0pt 90.0pt;} |
|
35 div.Section1 |
|
36 {page:Section1;} |
|
37 --> |
|
38 </style> |
|
39 |
|
40 </head> |
|
41 |
|
42 <body lang=EN-GB link=blue vlink=purple> |
|
43 |
|
44 <div class=Section1> |
|
45 |
|
46 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
47 style='color:black'>UI Framework provides a function </span><span |
|
48 style='font-size:10.0pt;font-family:"Courier New"'><a |
|
49 href="http://lon-xref.intra/lxr/ident?i=CEikonEnv"><span style='color:windowtext'>CEikonEnv</span></a>::<a |
|
50 href="http://lon-xref.intra/lxr/ident?i=SetSystem"><span style='color:windowtext'>SetSystem</span></a></span> |
|
51 to be used by applications that should not be possible to close from another |
|
52 application. Currently this mechanism does not work and changes to Symbian code |
|
53 alone will not be enough to close this vulnerability. </p> |
|
54 |
|
55 <pre><span style='font-size:12.0pt;font-family:"Times New Roman"'> </span></pre><pre><span |
|
56 style='font-size:12.0pt;font-family:"Times New Roman"'>Updates to licensee code are required to prevent that applications having called </span><a |
|
57 href="http://lon-xref.intra/lxr/ident?i=CEikonEnv"><span style='color:windowtext'>CEikonEnv</span></a>::<a |
|
58 href="http://lon-xref.intra/lxr/ident?i=SetSystem"><span style='color:windowtext'>SetSystem</span></a><span |
|
59 style='font-size:12.0pt;font-family:"Times New Roman"'> (e.g. Telephony) to be possible to close from another application. </span></pre> |
|
60 |
|
61 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
62 style='color:black'> </span></p> |
|
63 |
|
64 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
65 style='color:black'>To close the security vulnerability all implementations of |
|
66 the virtual </span><span style='font-size:10.0pt;font-family:"Courier New"; |
|
67 color:black'>CCoeAppUi::HandleSystemEventL</span><span style='color:black'> needs |
|
68 to:</span></p> |
|
69 |
|
70 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
71 style='font-family:Symbol;color:black'>· </span><span |
|
72 style='color:black'>Change so that an application marked as “system” does not |
|
73 close itself when it receives an </span><span style='font-size:10.0pt; |
|
74 font-family:"Courier New";color:black'>EApaSystemEventShutdown</span><span |
|
75 style='color:black'> event</span></p> |
|
76 |
|
77 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
78 style='font-family:Symbol;color:black'>· </span><span |
|
79 style='color:black'>Add functionality so that an application is closed when it |
|
80 receives an</span><span style='font-size:10.0pt;font-family:Courier;color:black'> |
|
81 </span><span style='font-size:10.0pt;font-family:"Courier New";color:black'>EApaSystemEventSecureShutdown</span><span |
|
82 style='font-size:10.0pt;font-family:Courier;color:black'> </span><span |
|
83 style='color:black'>event</span></p> |
|
84 |
|
85 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
86 style='color:black'> </span></p> |
|
87 |
|
88 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
89 style='color:black'>In code this can be expressed like this.</span></p> |
|
90 |
|
91 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
92 style='color:black'> </span></p> |
|
93 |
|
94 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
95 style='font-size:10.0pt;font-family:Courier;color:black'>EXPORT_C void CXxxAppUi::HandleSystemEventL(const |
|
96 TWsEvent& aEvent)</span></p> |
|
97 |
|
98 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
99 style='font-size:10.0pt;font-family:Courier;color:black'> {</span></p> |
|
100 |
|
101 <p class=MsoNormal style='text-indent:36.0pt;line-height:12.0pt;text-autospace: |
|
102 none'><i><span style='font-size:10.0pt;font-family:Courier;color:black'><skip></span></i></p> |
|
103 |
|
104 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
105 style='font-size:10.0pt;font-family:Courier;color:black'> case EApaSystemEventShutdown:</span></p> |
|
106 |
|
107 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
108 style='font-size:10.0pt;font-family:Courier;color:blue'>+</span><span |
|
109 style='font-size:10.0pt;font-family:Courier;color:black'> </span><span |
|
110 style='font-size:10.0pt;font-family:Courier;color:green'> // This event |
|
111 must no longer be allowed to close system-applications</span></p> |
|
112 |
|
113 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
114 style='font-size:10.0pt;font-family:Courier;color:blue'>+ if((static_cast<CEikonEnv*>(iCoeEnv)->IsSystem()))</span></p> |
|
115 |
|
116 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
117 style='font-size:10.0pt;font-family:Courier;color:blue'>+ break;</span></p> |
|
118 |
|
119 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
120 style='font-size:10.0pt;font-family:Courier;color:blue'>+</span><span |
|
121 style='font-size:10.0pt;font-family:Courier;color:black'> </span><span |
|
122 style='font-size:10.0pt;font-family:Courier;color:blue'>case EApaSystemEventSecureShutdown:</span></p> |
|
123 |
|
124 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
125 style='font-size:10.0pt;font-family:Courier;color:blue'>+</span><span |
|
126 style='font-size:10.0pt;font-family:Courier;color:green'> // If |
|
127 shutter is already running we don’t need to launch another one</span></p> |
|
128 |
|
129 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
130 style='font-size:10.0pt;font-family:Courier;color:blue'>+ if(iAppUiExtra |
|
131 && iAppUiExtra->IsSet(CEikAppUiExtra::EShutterPending))</span></p> |
|
132 |
|
133 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
134 style='font-size:10.0pt;font-family:Courier;color:blue'>+ break;</span></p> |
|
135 |
|
136 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
137 style='font-size:10.0pt;font-family:Courier;color:blue'>+ </span><span |
|
138 style='font-size:10.0pt;font-family:Courier;color:green'>// Launch a shutter to |
|
139 gracefully close the application</span></p> |
|
140 |
|
141 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
142 style='font-size:10.0pt;font-family:Courier;color:black'> CEikShutter::DeferredExecuteL(*iEikonEnv);</span></p> |
|
143 |
|
144 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
145 style='font-size:10.0pt;font-family:Courier;color:blue'>+ if(iAppUiExtra)</span></p> |
|
146 |
|
147 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
148 style='font-size:10.0pt;font-family:Courier;color:blue'>+ iAppUiExtra->Set(CEikAppUiExtra::EShutterPending);</span></p> |
|
149 |
|
150 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
151 style='font-size:10.0pt;font-family:Courier;color:black'> break;</span></p> |
|
152 |
|
153 <p class=MsoNormal style='text-indent:36.0pt;line-height:12.0pt;text-autospace: |
|
154 none'><i><span style='font-size:10.0pt;font-family:Courier;color:black'><skip></span></i></p> |
|
155 |
|
156 <p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span |
|
157 style='font-size:10.0pt;font-family:Courier;color:black'> }</span></p> |
|
158 |
|
159 <p class=MsoNormal> </p> |
|
160 |
|
161 </div> |
|
162 |
|
163 </body> |
|
164 |
|
165 </html> |