Fri, 24 Sep 2010 22:42:14 -0700
6891766: Vulnerabilities in use of reflection in CORBA
Reviewed-by: hawtin
1 /*
2 * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
26 package org.omg.CORBA;
28 /** Defines the methods used to read primitive data types from input streams
29 * for unmarshaling custom value types. This interface is used by user
30 * written custom unmarshaling code for custom value types.
31 * @see org.omg.CORBA.DataOutputStream
32 * @see org.omg.CORBA.CustomMarshal
33 */
34 public interface DataInputStream extends org.omg.CORBA.portable.ValueBase
35 {
36 /** Reads an IDL <code>Any</code> value from the input stream.
37 * @return the <code>Any</code> read.
38 * @throws <code>org.omg.CORBA.MARSHAL</code>
39 * If an inconsistency is detected, including not having registered
40 * a streaming policy, then the standard system exception MARSHAL is raised.
41 */
42 org.omg.CORBA.Any read_any ();
44 /** Reads an IDL boolean value from the input stream.
45 * @return the boolean read.
46 * @throws <code>org.omg.CORBA.MARSHAL</code>
47 * If an inconsistency is detected, including not having registered
48 * a streaming policy, then the standard system exception MARSHAL is raised.
49 */
50 boolean read_boolean ();
52 /** Reads an IDL character value from the input stream.
53 * @return the character read.
54 * @throws <code>org.omg.CORBA.MARSHAL</code>
55 * If an inconsistency is detected, including not having registered
56 * a streaming policy, then the standard system exception MARSHAL is raised.
57 */
58 char read_char ();
60 /** Reads an IDL wide character value from the input stream.
61 * @return the wide character read.
62 * @throws <code>org.omg.CORBA.MARSHAL</code>
63 * If an inconsistency is detected, including not having registered
64 * a streaming policy, then the standard system exception MARSHAL is raised.
65 */
66 char read_wchar ();
68 /** Reads an IDL octet value from the input stream.
69 * @return the octet value read.
70 * @throws <code>org.omg.CORBA.MARSHAL</code>
71 * If an inconsistency is detected, including not having registered
72 * a streaming policy, then the standard system exception MARSHAL is raised.
73 */
74 byte read_octet ();
76 /** Reads an IDL short from the input stream.
77 * @return the short read.
78 * @throws <code>org.omg.CORBA.MARSHAL</code>
79 * If an inconsistency is detected, including not having registered
80 * a streaming policy, then the standard system exception MARSHAL is raised.
81 */
82 short read_short ();
84 /** Reads an IDL unsigned short from the input stream.
85 * @return the unsigned short read.
86 * @throws <code>org.omg.CORBA.MARSHAL</code>
87 * If an inconsistency is detected, including not having registered
88 * a streaming policy, then the standard system exception MARSHAL is raised.
89 */
90 short read_ushort ();
92 /** Reads an IDL long from the input stream.
93 * @return the long read.
94 * @throws <code>org.omg.CORBA.MARSHAL</code>
95 * If an inconsistency is detected, including not having registered
96 * a streaming policy, then the standard system exception MARSHAL is raised.
97 */
98 int read_long ();
100 /** Reads an IDL unsigned long from the input stream.
101 * @return the unsigned long read.
102 * @throws <code>org.omg.CORBA.MARSHAL</code>
103 * If an inconsistency is detected, including not having registered
104 * a streaming policy, then the standard system exception MARSHAL is raised.
105 */
106 int read_ulong ();
108 /** Reads an IDL long long from the input stream.
109 * @return the long long read.
110 * @throws <code>org.omg.CORBA.MARSHAL</code>
111 * If an inconsistency is detected, including not having registered
112 * a streaming policy, then the standard system exception MARSHAL is raised.
113 */
114 long read_longlong ();
116 /** Reads an unsigned IDL long long from the input stream.
117 * @return the unsigned long long read.
118 * @throws <code>org.omg.CORBA.MARSHAL</code>
119 * If an inconsistency is detected, including not having registered
120 * a streaming policy, then the standard system exception MARSHAL is raised.
121 */
122 long read_ulonglong ();
124 /** Reads an IDL float from the input stream.
125 * @return the float read.
126 * @throws <code>org.omg.CORBA.MARSHAL</code>
127 * If an inconsistency is detected, including not having registered
128 * a streaming policy, then the standard system exception MARSHAL is raised.
129 */
130 float read_float ();
132 /** Reads an IDL double from the input stream.
133 * @return the double read.
134 * @throws <code>org.omg.CORBA.MARSHAL</code>
135 * If an inconsistency is detected, including not having registered
136 * a streaming policy, then the standard system exception MARSHAL is raised.
137 */
138 double read_double ();
139 // read_longdouble not supported by IDL/Java mapping
141 /** Reads an IDL string from the input stream.
142 * @return the string read.
143 * @throws <code>org.omg.CORBA.MARSHAL</code>
144 * If an inconsistency is detected, including not having registered
145 * a streaming policy, then the standard system exception MARSHAL is raised.
146 */
147 String read_string ();
149 /** Reads an IDL wide string from the input stream.
150 * @return the wide string read.
151 * @throws <code>org.omg.CORBA.MARSHAL</code>
152 * If an inconsistency is detected, including not having registered
153 * a streaming policy, then the standard system exception MARSHAL is raised.
154 */
155 String read_wstring ();
157 /** Reads an IDL CORBA::Object from the input stream.
158 * @return the CORBA::Object read.
159 * @throws <code>org.omg.CORBA.MARSHAL</code>
160 * If an inconsistency is detected, including not having registered
161 * a streaming policy, then the standard system exception MARSHAL is raised.
162 */
163 org.omg.CORBA.Object read_Object ();
165 /** Reads an IDL Abstract interface from the input stream.
166 * @return the Abstract interface read.
167 * @throws <code>org.omg.CORBA.MARSHAL</code>
168 * If an inconsistency is detected, including not having registered
169 * a streaming policy, then the standard system exception MARSHAL is raised.
170 */
171 java.lang.Object read_Abstract ();
173 /** Reads an IDL value type from the input stream.
174 * @return the value type read.
175 * @throws <code>org.omg.CORBA.MARSHAL</code>
176 * If an inconsistency is detected, including not having registered
177 * a streaming policy, then the standard system exception MARSHAL is raised.
178 */
179 java.io.Serializable read_Value ();
181 /** Reads an IDL typecode from the input stream.
182 * @return the typecode read.
183 * @throws <code>org.omg.CORBA.MARSHAL</code>
184 * If an inconsistency is detected, including not having registered
185 * a streaming policy, then the standard system exception MARSHAL is raised.
186 */
187 org.omg.CORBA.TypeCode read_TypeCode ();
189 /** Reads array of IDL Anys from offset for length elements from the
190 * input stream.
191 * @param seq The out parameter holder for the array to be read.
192 * @param offset The index into seq of the first element to read from the
193 * input stream.
194 * @param length The number of elements to read from the input stream.
195 * @throws <code>org.omg.CORBA.MARSHAL</code>
196 * If an inconsistency is detected, including not having registered
197 * a streaming policy, then the standard system exception MARSHAL is raised.
198 */
199 void read_any_array (org.omg.CORBA.AnySeqHolder seq, int offset, int length);
201 /** Reads array of IDL booleans from offset for length elements from the
202 * input stream.
203 * @param seq The out parameter holder for the array to be read.
204 * @param offset The index into seq of the first element to read from the
205 * input stream.
206 * @param length The number of elements to read from the input stream.
207 * @throws <code>org.omg.CORBA.MARSHAL</code>
208 * If an inconsistency is detected, including not having registered
209 * a streaming policy, then the standard system exception MARSHAL is raised.
210 */
211 void read_boolean_array (org.omg.CORBA.BooleanSeqHolder seq, int offset, int length);
213 /** Reads array of IDL characters from offset for length elements from the
214 * input stream.
215 * @param seq The out parameter holder for the array to be read.
216 * @param offset The index into seq of the first element to read from the
217 * input stream.
218 * @param length The number of elements to read from the input stream.
219 * @throws <code>org.omg.CORBA.MARSHAL</code>
220 * If an inconsistency is detected, including not having registered
221 * a streaming policy, then the standard system exception MARSHAL is raised.
222 */
223 void read_char_array (org.omg.CORBA.CharSeqHolder seq, int offset, int length);
225 /** Reads array of IDL wide characters from offset for length elements from the
226 * input stream.
227 * @param seq The out parameter holder for the array to be read.
228 * @param offset The index into seq of the first element to read from the
229 * input stream.
230 * @param length The number of elements to read from the input stream.
231 * @throws <code>org.omg.CORBA.MARSHAL</code>
232 * If an inconsistency is detected, including not having registered
233 * a streaming policy, then the standard system exception MARSHAL is raised.
234 */
235 void read_wchar_array (org.omg.CORBA.WCharSeqHolder seq, int offset, int length);
237 /** Reads array of IDL octets from offset for length elements from the
238 * input stream.
239 * @param seq The out parameter holder for the array to be read.
240 * @param offset The index into seq of the first element to read from the
241 * input stream.
242 * @param length The number of elements to read from the input stream.
243 * @throws <code>org.omg.CORBA.MARSHAL</code>
244 * If an inconsistency is detected, including not having registered
245 * a streaming policy, then the standard system exception MARSHAL is raised.
246 */
247 void read_octet_array (org.omg.CORBA.OctetSeqHolder seq, int offset, int length);
249 /** Reads array of IDL shorts from offset for length elements from the
250 * input stream.
251 * @param seq The out parameter holder for the array to be read.
252 * @param offset The index into seq of the first element to read from the
253 * input stream.
254 * @param length The number of elements to read from the input stream.
255 * @throws <code>org.omg.CORBA.MARSHAL</code>
256 * If an inconsistency is detected, including not having registered
257 * a streaming policy, then the standard system exception MARSHAL is raised.
258 */
259 void read_short_array (org.omg.CORBA.ShortSeqHolder seq, int offset, int length);
261 /** Reads array of IDL unsigned shorts from offset for length elements from the
262 * input stream.
263 * @param seq The out parameter holder for the array to be read.
264 * @param offset The index into seq of the first element to read from the
265 * input stream.
266 * @param length The number of elements to read from the input stream.
267 * @throws <code>org.omg.CORBA.MARSHAL</code>
268 * If an inconsistency is detected, including not having registered
269 * a streaming policy, then the standard system exception MARSHAL is raised.
270 */
271 void read_ushort_array (org.omg.CORBA.UShortSeqHolder seq, int offset, int length);
273 /** Reads array of IDL longs from offset for length elements from the
274 * input stream.
275 * @param seq The out parameter holder for the array to be read.
276 * @param offset The index into seq of the first element to read from the
277 * input stream.
278 * @param length The number of elements to read from the input stream.
279 * @throws <code>org.omg.CORBA.MARSHAL</code>
280 * If an inconsistency is detected, including not having registered
281 * a streaming policy, then the standard system exception MARSHAL is raised.
282 */
283 void read_long_array (org.omg.CORBA.LongSeqHolder seq, int offset, int length);
285 /** Reads array of IDL unsigned longs from offset for length elements from the
286 * input stream.
287 * @param seq The out parameter holder for the array to be read.
288 * @param offset The index into seq of the first element to read from the
289 * input stream.
290 * @param length The number of elements to read from the input stream.
291 * @throws <code>org.omg.CORBA.MARSHAL</code>
292 * If an inconsistency is detected, including not having registered
293 * a streaming policy, then the standard system exception MARSHAL is raised.
294 */
295 void read_ulong_array (org.omg.CORBA.ULongSeqHolder seq, int offset, int length);
297 /** Reads array of IDL unsigned long longs from offset for length elements from the
298 * input stream.
299 * @param seq The out parameter holder for the array to be read.
300 * @param offset The index into seq of the first element to read from the
301 * input stream.
302 * @param length The number of elements to read from the input stream.
303 * @throws <code>org.omg.CORBA.MARSHAL</code>
304 * If an inconsistency is detected, including not having registered
305 * a streaming policy, then the standard system exception MARSHAL is raised.
306 */
307 void read_ulonglong_array (org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length);
309 /** Reads array of IDL long longs from offset for length elements from the
310 * input stream.
311 * @param seq The out parameter holder for the array to be read.
312 * @param offset The index into seq of the first element to read from the
313 * input stream.
314 * @param length The number of elements to read from the input stream.
315 * @throws <code>org.omg.CORBA.MARSHAL</code>
316 * If an inconsistency is detected, including not having registered
317 * a streaming policy, then the standard system exception MARSHAL is raised.
318 */
319 void read_longlong_array (org.omg.CORBA.LongLongSeqHolder seq, int offset, int length);
321 /** Reads array of IDL floats from offset for length elements from the
322 * input stream.
323 * @param seq The out parameter holder for the array to be read.
324 * @param offset The index into seq of the first element to read from the
325 * input stream.
326 * @param length The number of elements to read from the input stream.
327 * @throws <code>org.omg.CORBA.MARSHAL</code>
328 * If an inconsistency is detected, including not having registered
329 * a streaming policy, then the standard system exception MARSHAL is raised.
330 */
331 void read_float_array (org.omg.CORBA.FloatSeqHolder seq, int offset, int length);
333 /** Reads array of IDL doubles from offset for length elements from the
334 * input stream.
335 * @param seq The out parameter holder for the array to be read.
336 * @param offset The index into seq of the first element to read from the
337 * input stream.
338 * @param length The number of elements to read from the input stream.
339 * @throws <code>org.omg.CORBA.MARSHAL</code>
340 * If an inconsistency is detected, including not having registered
341 * a streaming policy, then the standard system exception MARSHAL is raised.
342 */
343 void read_double_array (org.omg.CORBA.DoubleSeqHolder seq, int offset, int length);
344 } // interface DataInputStream