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

Reply via email to