harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: svn commit: r504950 - in /harmony/enhanced: classlib/trunk/depends/libs/linux.x86/ classlib/trunk/depends/libs/linux.x86_64/ classlib/trunk/make/ classlib/trunk/modules/text/ classlib/trunk/modules/text/src/main/native/text/unix/ classlib/trunk/modules...
Date Sat, 10 Feb 2007 18:49:08 GMT
You did more in this commit than the log suggests - did you mean to?


On Feb 8, 2007, at 11:48 AM, gshimansky@apache.org wrote:

> Author: gshimansky
> Date: Thu Feb  8 08:48:40 2007
> New Revision: 504950
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=504950
> Log:
> Applied HARMONY-3133 [drlvm][classloader] Add check of field and  
> method names for classfile of version lower than 49
>
> DRLVM tests passed on Ubuntu6 x86, Windows 2003 server x86 and  
> SuSE9 x86_64.
> Classlib text passed on windows.
>
>
> Modified:
>     harmony/enhanced/classlib/trunk/depends/libs/linux.x86/    
> (props changed)
>     harmony/enhanced/classlib/trunk/depends/libs/linux.x86_64/    
> (props changed)
>     harmony/enhanced/classlib/trunk/make/build-native.xml
>     harmony/enhanced/classlib/trunk/modules/text/build.xml
>     harmony/enhanced/classlib/trunk/modules/text/src/main/native/ 
> text/unix/makefile
>     harmony/enhanced/classlib/trunk/modules/text/src/main/native/ 
> text/windows/makefile
>     harmony/enhanced/drlvm/trunk/build/make/components/vm/vmcore.xml
>     harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml
>     harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/ 
> Class_File_Loader.cpp
>
> Propchange: harmony/enhanced/classlib/trunk/depends/libs/linux.x86/
> ---------------------------------------------------------------------- 
> --------
> --- svn:ignore (added)
> +++ svn:ignore Thu Feb  8 08:48:40 2007
> @@ -0,0 +1,2 @@
> +libicuuc.so
> +libicudata.so
>
> Propchange: harmony/enhanced/classlib/trunk/depends/libs/linux.x86_64/
> ---------------------------------------------------------------------- 
> --------
> --- svn:ignore (added)
> +++ svn:ignore Thu Feb  8 08:48:40 2007
> @@ -0,0 +1,2 @@
> +libicuuc.so
> +libicudata.so
>
> Modified: harmony/enhanced/classlib/trunk/make/build-native.xml
> URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/ 
> make/build-native.xml?view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/classlib/trunk/make/build-native.xml (original)
> +++ harmony/enhanced/classlib/trunk/make/build-native.xml Thu Feb   
> 8 08:48:40 2007
> @@ -154,6 +154,7 @@
>      <!-- =================================
>            target: overlay-oss
>           ================================= -->
> +    <property name="iculib.zip" location="${depends.oss}/icu4c-3.4- 
> harmony.zip" />	
>      <target name="overlay-oss">
>          <ant dir="modules/luni" antfile="build.xml"
>               target="overlay-oss" />
> @@ -161,8 +162,10 @@
>      	<ant dir="modules/archive" antfile="build.xml"
>  	     target="overlay-oss" />
>      	
> -    	<ant dir="modules/text" antfile="build.xml"
> -    	     target="overlay-oss" />
> +        <mkdir dir="${hy.hdk}/include/icu4c/unicode" />
> +        <unzip src="${iculib.zip}" dest="${hy.hdk}/include/icu4c/ 
> unicode" />
> +        <chmod dir="${hy.hdk}/include/icu4c/unicode" perm="ugo+r" />
> +        <copy file="${hy.hdk}/include/icu4c/unicode/icuuc.lib"  
> todir="${native.lib.target}" overwrite="yes"/>
>      </target>
>
>      <!-- =================================
> @@ -228,8 +231,7 @@
>               target="clean-overlay-oss" />
>       	<ant dir="modules/archive" antfile="build.xml"
>      	     target="clean-overlay-oss" />
> -    	<ant dir="modules/text" antfile="build.xml"
> -    	     target="clean-overlay-oss" />
> +	<delete dir="${hy.hdk}/include/icu4c" quiet="true" />
>      </target>
>
>  </project>
>
> Modified: harmony/enhanced/classlib/trunk/modules/text/build.xml
> URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/ 
> modules/text/build.xml?view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/classlib/trunk/modules/text/build.xml (original)
> +++ harmony/enhanced/classlib/trunk/modules/text/build.xml Thu Feb   
> 8 08:48:40 2007
> @@ -37,8 +37,6 @@
>          </or>
>      </fileset>
>
> -    <property name="iculib.zip" location="${depends.oss}/icu4c-3.4- 
> harmony.zip" />
> -
>      <property name="text.exclude.file" location="${hy.hdk}/build/ 
> text.exclude" />
>
>      <target name="build" depends="compile-java, copy-resources,  
> build-jar" />
> @@ -56,16 +54,6 @@
>
>      <!-- internal target for local and global test run sequence -->
>      <target name="-test-module" depends="build, compile-tests,  
> prepare-exclude, run-tests" />
> -
> -    <target name="overlay-oss">
> -        <mkdir dir="${hy.text.src.main.native}/icu4c/unicode" />
> -        <unzip src="${iculib.zip}" dest="$ 
> {hy.text.src.main.native}/icu4c/unicode" />
> -        <chmod dir="${hy.text.src.main.native}/icu4c/unicode"  
> perm="ugo+r" />
> -    </target>
> -
> -    <target name="clean-overlay-oss">
> -        <delete dir="${hy.text.src.main.native}/icu4c"  
> quiet="true" />
> -    </target>
>
>      <!-- Build native code -->
>      <target name="build-native" >
>
> Modified: harmony/enhanced/classlib/trunk/modules/text/src/main/ 
> native/text/unix/makefile
> URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/ 
> modules/text/src/main/native/text/unix/makefile? 
> view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/classlib/trunk/modules/text/src/main/native/ 
> text/unix/makefile (original)
> +++ harmony/enhanced/classlib/trunk/modules/text/src/main/native/ 
> text/unix/makefile Thu Feb  8 08:48:40 2007
> @@ -20,7 +20,7 @@
>  include $(HY_HDK)/build/make/defines.mk
>
>  CFLAGS += -fpic
> -INCLUDES += -I../../icu4c
> +INCLUDES += -I$(HY_HDK)/include/icu4c
>
>  BUILDFILES = $(SHAREDSUB)text_copyright.o $(SHAREDSUB)BidiWrapper.o
>
>
> Modified: harmony/enhanced/classlib/trunk/modules/text/src/main/ 
> native/text/windows/makefile
> URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/ 
> modules/text/src/main/native/text/windows/makefile? 
> view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/classlib/trunk/modules/text/src/main/native/ 
> text/windows/makefile (original)
> +++ harmony/enhanced/classlib/trunk/modules/text/src/main/native/ 
> text/windows/makefile Thu Feb  8 08:48:40 2007
> @@ -23,14 +23,14 @@
>  DLLNAME=..\$(LIBBASE).dll
>  LIBNAME=$(LIBPATH)$(LIBBASE).lib
>  HYLDFLAGS = $(HYLDFLAGS) -def:$(LIBBASE).def
> -HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB) /I../../icu4c
> +HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB) /I$(HY_HDK)\include\icu4c
>  BUILDFILES = $(SHAREDSUB)text_copyright.obj $(SHAREDSUB) 
> BidiWrapper.obj
>  VIRTFILES = hytext.res
>  SYSLIBFILES = ws2_32.lib Iphlpapi.lib
>
>  MDLLIBFILES = \
>    $(LIBPATH)hysig.lib $(LIBPATH)hycommon.lib $(LIBPATH)hypool.lib $ 
> (LIBPATH)hyfdlibm.lib \
> -  $(LIBPATH)hythr.lib $(LIBPATH)vmi.lib ..\..\icu4c\unicode\icuuc.lib
> +  $(LIBPATH)hythr.lib $(LIBPATH)vmi.lib $(LIBPATH)icuuc.lib
>
>  DLLBASE=0x13300000
>  COMMENT=/comment:"Text component native code. (c) Copyright 1991,  
> 2005 The Apache Software Foundation or its licensors, as applicable."
>
> Modified: harmony/enhanced/drlvm/trunk/build/make/components/vm/ 
> vmcore.xml
> URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/ 
> build/make/components/vm/vmcore.xml? 
> view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/drlvm/trunk/build/make/components/vm/ 
> vmcore.xml (original)
> +++ harmony/enhanced/drlvm/trunk/build/make/components/vm/ 
> vmcore.xml Thu Feb  8 08:48:40 2007
> @@ -57,6 +57,7 @@
>          <compiler id="c.compiler" extends="common.c.compiler">
>              <includepath>
>                  <pathelement location="${build.vm.home}/include" />
> +		<pathelement location="${external.dep.CLASSLIB.includes}/icu4c" / 
> >		
>                  <pathelement location="${extra.apr.includes}/ 
> apr-1" />
>                  <pathelement location="${extra.apr.includes}" />
>                  <pathelement location="${extra.log4cxx.includes}" />
> @@ -177,6 +178,7 @@
>                  <pathelement location="${extra.apr.includes}" />
>                  <pathelement location="${extra.apr.includes}/ 
> apr-1" />
>                  <pathelement location="${extra.log4cxx.includes}" />
> +		<pathelement location="${external.dep.CLASSLIB.includes}/icu4c" / 
> >		
>                  <select os="win">
>                      <pathelement location="${extra.zlib.includes}" />
>                  </select>
> @@ -188,7 +190,8 @@
>                      <include name="vmcore/include" />
>                      <include name="port/include" />
>                  </dirset>
> -
> +		
> +		<pathelement path="${external.dep.CLASSLIB.includes}/icu4c" />
>                  <pathelement path="${extra.log4cxx.includes}" />
>
>                  <select os="win">
> @@ -262,6 +265,21 @@
>              </fileset>
>          </select>
>
> +	<select os="lnx" >
> +		<select arch="ia32">
> +			<symlink overwrite="yes" link="${external.dep.CLASSLIB}/depends/ 
> libs/linux.x86/libicuuc.so"
> +				resource="${external.dep.CLASSLIB}/depends/libs/linux.x86/ 
> libicuuc.so.34"/>
> +			<symlink overwrite="yes" link="${external.dep.CLASSLIB}/depends/ 
> libs/linux.x86/libicudata.so"
> +				resource="${external.dep.CLASSLIB}/depends/libs/linux.x86/ 
> libicudata.so.34"/>
> +		</select>
> +		<select arch="em64t">
> +			<symlink overwrite="yes" link="${external.dep.CLASSLIB}/depends/ 
> libs/linux.x86_64/libicuuc.so"
> +				resource="${external.dep.CLASSLIB}/depends/libs/linux.x86_64/ 
> libicuuc.so.34"/>
> +			<symlink overwrite="yes" link="${external.dep.CLASSLIB}/depends/ 
> libs/linux.x86_64/libicudata.so"
> +				resource="${external.dep.CLASSLIB}/depends/libs/linux.x86_64/ 
> libicudata.so.34"/>
> +		</select>		
> +	</select>
> +
>          <linker id="linker" extends="common.linker">
>              <libset libs="${vm.port.lib}"
>                      dir="${vm.port.libdir}" />
> @@ -292,6 +310,9 @@
>              <select os="win">
>                  <libset libs="${extra.zlib.lib}"
>                          dir="${extra.zlib.libdir}" />
> +
> +       	        <libset libs="icuuc"
> +                        dir="${external.dep.CLASSLIB.libdir}" />			
>              </select>
>
>              <select os="win" cfg="debug">
> @@ -301,6 +322,14 @@
>              <select os="lnx">
>                  <syslibset type="shared" libs="m,dl,stdc+ 
> +,z,xml2,pthread,gcc_s,rt" />
>                  <linkerarg value="--export-dynamic" />
> +		<select arch="ia32">
> +			<libset type="shared" libs="icuuc"
> +                        	dir="${external.dep.CLASSLIB}/depends/ 
> libs/linux.x86" />
> +		</select>
> +		<select arch="em64t">
> +			<libset type="shared" libs="icuuc"
> +                        	dir="${external.dep.CLASSLIB}/depends/ 
> libs/linux.x86_64" />
> +		</select>		
>                  <!--linkerarg value="-lz" />
>                  <linkerarg value="-lxml2" />
>                  <linkerarg value="-lm" />
>
> Modified: harmony/enhanced/drlvm/trunk/build/make/targets/ 
> cunit.test.xml
> URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/ 
> build/make/targets/cunit.test.xml? 
> view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml  
> (original)
> +++ harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml  
> Thu Feb  8 08:48:40 2007
> @@ -138,12 +138,25 @@
>                          <libset libs="hyzlib" dir="$ 
> {external.dep.CLASSLIB}/deploy/jdk/jre/bin" />
>                          <libset libs="jthread" dir="$ 
> {build.semi.dir}/vm/jthread/_bin" />
>                          <libset libs="harmonyvm" dir="$ 
> {build.semi.dir}/vm/vmcore/_bin" />
> +                        <libset libs="icuuc" dir="$ 
> {external.dep.CLASSLIB.libdir}" />
>                          <select os="win">
>                              <syslibset libs="advapi32, ws2_32,  
> mswsock, user32, userenv, odbc32" />
>                              <linkerarg value="/ 
> NODEFAULTLIB:libcmt.lib" />
>                          </select>
>                          <select os="lnx">
>                              <syslibset type="shared" libs="stdc++,  
> gcc_s, pthread, rt" />
> +                            <select arch="ia32">
> +			        <libset type="shared" libs="icuuc"
> +                                    dir="${external.dep.CLASSLIB}/ 
> depends/libs/linux.x86" />
> +			        <libset type="shared" libs="icudata"
> +                                    dir="${external.dep.CLASSLIB}/ 
> depends/libs/linux.x86" />
> +                                </select>				
> +                            <select arch="em64t">
> +                                <libset type="shared" libs="icuuc"
> +                                    dir="${external.dep.CLASSLIB}/ 
> depends/libs/linux.x86_64" />
> +			        <libset type="shared" libs="icudata"
> +                                    dir="${external.dep.CLASSLIB}/ 
> depends/libs/linux.x86_64" />
> +                            </select>			
>                          </select>
>                      </linker>
>                  </cc>
>
> Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/ 
> Class_File_Loader.cpp
> URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/ 
> vmcore/src/class_support/Class_File_Loader.cpp? 
> view=diff&rev=504950&r1=504949&r2=504950
> ====================================================================== 
> ========
> --- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/ 
> Class_File_Loader.cpp (original)
> +++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/ 
> Class_File_Loader.cpp Thu Feb  8 08:48:40 2007
> @@ -37,6 +37,8 @@
>  #include "interpreter_exports.h"
>  #include "jarfile_util.h"
>
> +#include "unicode/uchar.h"
> +
>  #ifdef _IPF_
>  #include "vm_ipf.h"
>  #endif //_IPF_
> @@ -617,13 +619,25 @@
>  static inline bool
>  check_field_name(const char *name, unsigned len, bool old_version)
>  {
> -    for (unsigned i = 0; i < len; i++) {
> -        switch(name[i]){
> -        case '.':
> -        case ';':
> -        case '[':
> -        case '/':
> -            return false;
> +    TRACE2("field", "field: " << name << " " << len)
> +    if(old_version) {
> +        TRACE2("field", "symbol: " << *name);
> +        if(!(u_isalpha(*name) || *name == '$' || *name == '_'))
> +            return false;
> +        for (unsigned i = 1; i < len; i++) {
> +            TRACE2("field", "symbol: " << name[i]);
> +            if(!(u_isalnum(name[i]) || name[i] == '$' || name[i]  
> == '_'))
> +                return false;
> +        }
> +    }else {
> +        for (unsigned i = 0; i < len; i++) {
> +            switch(name[i]){
> +            case '.':
> +            case ';':
> +            case '[':
> +            case '/':
> +                return false;
> +            }
>          }
>      }
>      return true;
> @@ -632,15 +646,25 @@
>  static inline bool
>  check_method_name(const char *name, unsigned len, bool old_version)
>  {
> -    for (unsigned i = 0; i < len; i++) {
> -        switch(name[i]){
> -        case '.':
> -        case ';':
> -        case '[':
> -        case '/':
> -        case '<':
> -        case '>':
> +    if(old_version) {
> +        if(!(u_isalpha(*name) || *name == '$' || *name == '_'))
>              return false;
> +        for (unsigned i = 1; i < len; i++) {
> +            TRACE2("field", "symbol: " << name[i]);
> +            if(!(u_isalnum(name[i]) || name[i] == '$' || name[i]  
> == '_'))
> +                return false;
> +        }
> +    }else {
> +        for (unsigned i = 0; i < len; i++) {
> +            switch(name[i]){
> +            case '.':
> +            case ';':
> +            case '[':
> +            case '/':
> +            case '<':
> +            case '>':
> +                return false;
> +            }
>          }
>      }
>      return true;
> @@ -722,7 +746,6 @@
>  {
>      if(!Class_Member::parse(clss, cfs))
>          return false;
> -
>      if(env.verify_all
>              && !check_field_name(_name->bytes, _name->len,
>                     clss->get_version() < JAVA5_CLASS_FILE_VERSION))
> @@ -2558,15 +2581,12 @@
>              if(tag == CONSTANT_Methodref)
>              {
>                  //check method name
> -                if(name != env->Init_String)
> +                if(env->verify_all && (name != env->Init_String)
> +                    && !check_method_name(name->bytes,name->len,  
> clss->get_version() < JAVA5_CLASS_FILE_VERSION))
>                  {
> -                    if(!check_method_name(name->bytes,name->len,
> -                            clss->get_version() <  
> JAVA5_CLASS_FILE_VERSION))
> -                    {
>                          REPORT_FAILED_CLASS_CLASS(clss- 
> >get_class_loader(), clss, "java/lang/ClassFormatError",
>                              clss->get_name()->bytes << ": illegal  
> method name for CONSTANT_Methodref entry: " << name->bytes);
>                          return false;
> -                    }
>                  }
>                  //check method descriptor
>                  if(!check_method_descriptor(descriptor->bytes))
> @@ -2592,7 +2612,7 @@
>              if(tag == CONSTANT_Fieldref)
>              {
>                  //check field name
> -                if(!check_field_name(name->bytes, name->len,
> +                if(env->verify_all && !check_field_name(name- 
> >bytes, name->len,
>                          clss->get_version() <  
> JAVA5_CLASS_FILE_VERSION))
>                  {
>                      REPORT_FAILED_CLASS_CLASS(clss- 
> >get_class_loader(), clss, "java/lang/ClassFormatError",
> @@ -2783,7 +2803,6 @@
>              "could not parse major version");
>          return false;
>      }
> -
>      //See comment in specification 4.2 about supported versions.
>      if (!(m_version >= CLASSFILE_MAJOR
>          && m_version <= CLASSFILE_MAJOR_MAX))
>
>


Mime
View raw message