PatchSet 4407 Date: 2004/02/09 15:56:22 Author: kaz Branch: HEAD Tag: (none) Log: 2004-02-09 Ito Kazumitsu <[EMAIL PROTECTED]>
* libraries/javalib/java/io/ObjectInputStream.java (readClassDescriptor): Avoid the overflow of fieldmapping. Members: ChangeLog:1.1991->1.1992 libraries/javalib/java/io/ObjectInputStream.java:1.31->1.32 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.1991 kaffe/ChangeLog:1.1992 --- kaffe/ChangeLog:1.1991 Mon Feb 9 00:44:32 2004 +++ kaffe/ChangeLog Mon Feb 9 15:56:22 2004 @@ -1,3 +1,9 @@ +2004-02-09 Ito Kazumitsu <[EMAIL PROTECTED]> + + * libraries/javalib/java/io/ObjectInputStream.java + (readClassDescriptor): + Avoid the overflow of fieldmapping. + 2004-02-08 Dalibor Topic <[EMAIL PROTECTED]> * Makefile.am (DIST_SUBDIRS): Removed intl. Index: kaffe/libraries/javalib/java/io/ObjectInputStream.java diff -u kaffe/libraries/javalib/java/io/ObjectInputStream.java:1.31 kaffe/libraries/javalib/java/io/ObjectInputStream.java:1.32 --- kaffe/libraries/javalib/java/io/ObjectInputStream.java:1.31 Mon Feb 2 18:01:05 2004 +++ kaffe/libraries/javalib/java/io/ObjectInputStream.java Mon Feb 9 15:56:23 2004 @@ -491,7 +491,6 @@ ObjectStreamField[] stream_fields = osc.fields; ObjectStreamField[] real_fields = ObjectStreamClass.lookup(clazz).fields; ObjectStreamField[] fieldmapping = new ObjectStreamField[2 * Math.max(stream_fields.length, real_fields.length)]; - osc.fieldMapping = fieldmapping; int stream_idx = 0; int real_idx = 0; @@ -543,9 +542,21 @@ } if (real_field != null && !real_field.isToSet()) real_field = null; + /* If some of stream_fields does not correspond to any of real_fields, + * or the opposite, then fieldmapping will go short. + */ + if (map_idx == fieldmapping.length) + { + ObjectStreamField[] newfieldmapping = + new ObjectStreamField[fieldmapping.length + 2]; + System.arraycopy(fieldmapping, 0, + newfieldmapping, 0, fieldmapping.length); + fieldmapping = newfieldmapping; + } fieldmapping[map_idx++] = stream_field; fieldmapping[map_idx++] = real_field; } + osc.fieldMapping = fieldmapping; return osc; } _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe