It looks good, so I checked it in. Tell me if I screwed it up. (The patch queue is looking a lot shorter...)
Cheers, - Jim On Mon, 2002-04-15 at 15:49, Patrick Tullmann wrote: > > I discovered the other day that Kaffe didn't correctly handle > truncated class files (it just segfaulted, and threw a null pointer > exception). I figured this would be a relatively easy fix (just add > some buffer length checks in various places in readClass). > > It wasn't. The main culprit was kaffeh, which used its own bastarized > version of the readClass macros. I bashed on kaffeh until it was able > to use the main kaffevm functions for reading classes, and took the > opportunity to clean up a bunch of other things in kaffeh (and some in > kaffevm). > > A completely unrelated hack to kaffe/scripts/kaffe.in to automatically > figure out a unique name for KAFFE_DEBUG_TEMPFILE is also included. > > The patch (92k) and a ChangeLog entry are available here: > http://www.tullmann.org/pat/kaffe/ > > I've attached the ChangeLog entry here. I can check this in, but want > to know if I should check it in now, or if we should wait for after > the 1.0.7 release. Other feedback or issues are welcomed, too. > > -Pat > > ----- ----- ---- --- --- -- - - - - - > Pat Tullmann [EMAIL PROTECTED] > The early bird gets the worm, so sleep in. > > Pat Tullmann <[EMAIL PROTECTED]>: > * kaffe/kaffeh/mem.c, kaffe/kaffeh/Makefile.am, > kaffe/kaffeh/java_lang_ClassLoader.h, > kaffe/kaffeh/java_lang_Object.h, > kaffe/kaffeh/kaffeh-support.h, kaffe/kaffeh/main.c, > kaffe/kaffeh/sigs.c, kaffe/kaffeh/support.c, > kaffe/kaffevm/Makefile.am, kaffe/kaffevm/baseClasses.c, > kaffe/kaffevm/classMethod.c, kaffe/kaffevm/classMethod.h, > kaffe/kaffevm/classpath.h, kaffe/kaffevm/code.c, > kaffe/kaffevm/code.h, kaffe/kaffevm/constants.c, > kaffe/kaffevm/constants.h, kaffe/kaffevm/exception.c, > kaffe/kaffevm/file.h, kaffe/kaffevm/lookup.c, > kaffe/kaffevm/readClass.c, kaffe/kaffevm/readClass.h, > kaffe/kaffevm/support.c, kaffe/kaffevm/utf8const.c: > Handle truncated classes in readClass. Also took the > opportunity to clean up some really ugly macros, and share > more code between kaffevm and kaffeh. Moved the buffer > reading macros used by readClass() into inline functions with > asserts. Added many 'const' to various 'char *'. Split > kaffeh mem-related code into a new file. kaffeh overrides > various functions now, but does not override internal header > files or macros. Cleaned up the kaffeh java_lang_* headers. > Add -Xdebug option to kaffeh, as kaffeh can now use the > kaffevm debug.c infrastructure. Moved class-specific constant > table parsing macros into classMethod.h (out of constants.h). > > * kaffe/kaffeh/mem.c, kaffe/kaffevm/utfconst.h: > Added as part of above. > > * kaffe/kaffeh/constants.c, kaffe/kaffeh/constants.h, > * kaffe/kaffeh/file.h, kaffe/kaffeh/readClassConfig.h, > * kaffe/kaffevm/readClassConfig.h: > Removed as part of above. > > * kaffe/kaffevm/debug.c,kaffe/kaffevm/debug.h: > Added READCLASS flag to debug infrastructure. dbgSetMaskStr() > now takes a 'const char*'. debug.h is usable in Kaffeh, so > many hacks were removed. Made GCC understand that > kaffe_dprintf works just like printf, so it can debug the > format strings (several debug format strings were fixed > because of these valid warnings). > > * kaffe/kaffevm/findInJar.c, libraries/clib/native/ClassLoader.c > Use the new file.h classFile interface, > > * kaffe/kaffevm/utf8const.h, kaffe/kaffevm/string.c, > kaffe/kaffevm/stringSupport.h: > To cleanly share the utf8 code between kaffeh and kaffevm, > created kaffevm/utf8const.h which contains only the > utf8-related functions, types and macros. > > * test/regression/Makefile.am, > test/regression/TruncatedClass.java: > Added a new regression test TruncatedClass.java that tests > truncated classes. > > * kaffe/kaffevm/inflate.c, kaffe/kaffevm/jni.c, > libraries/clib/native/Runtime.c > Minor comment changes and cleanups > > * kaffe/kaffevm/mem/gc-incremental.c, > kaffe/kaffevm/mem/gc-incremental.h, > kaffe/kaffevm/mem/gc-mem.c, kaffe/kaffevm/mem/gc-mem.h: > Added some asserts to the gc, and some more comments. > > * kaffe/scripts/kaffe.in: > Try to automatically find a unique name for the > KAFFE_DEBUG_TEMPFILE. _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
