You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/05/31 21:36:53 UTC

svn commit: r949842 - /subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp

Author: hwright
Date: Mon May 31 19:36:53 2010
New Revision: 949842

URL: http://svn.apache.org/viewvc?rev=949842&view=rev
Log:
Fix a double free in the JavaHL bindings.

Patch by: Byeongcheol Lee <li...@gmail.com>

* subversion/bindings/javahl/native/CopySources.cpp
  (array): Replace JNIStringHolder() with two calls to GetStringUTFChars()
    and DeleteLocalRef().

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp?rev=949842&r1=949841&r2=949842&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp Mon May 31 19:36:53 2010
@@ -116,11 +116,12 @@ CopySources::array(SVN::Pool &pool)
       if (JNIUtil::isJavaExceptionThrown())
         return NULL;
 
-      JNIStringHolder path(jpath);
+      const char *path = env->GetStringUTFChars(jpath, NULL);
       if (JNIUtil::isJavaExceptionThrown())
         return NULL;
 
-      src->path = apr_pstrdup(p, (const char *) path);
+      src->path = apr_pstrdup(p, path);
+      env->ReleaseStringUTFChars(jpath, path);
       SVN_JNI_ERR(JNIUtil::preprocessPath(src->path, pool.pool()),
                   NULL);
       env->DeleteLocalRef(jpath);



Re: svn commit: r949842 - /subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp

Posted by Greg Stein <gs...@gmail.com>.
Log msg has the wrong func names...

On Mon, May 31, 2010 at 15:36,  <hw...@apache.org> wrote:
> Author: hwright
> Date: Mon May 31 19:36:53 2010
> New Revision: 949842
>
> URL: http://svn.apache.org/viewvc?rev=949842&view=rev
> Log:
> Fix a double free in the JavaHL bindings.
>
> Patch by: Byeongcheol Lee <li...@gmail.com>
>
> * subversion/bindings/javahl/native/CopySources.cpp
>  (array): Replace JNIStringHolder() with two calls to GetStringUTFChars()
>    and DeleteLocalRef().
>
> Modified:
>    subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp
>
> Modified: subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp?rev=949842&r1=949841&r2=949842&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp (original)
> +++ subversion/trunk/subversion/bindings/javahl/native/CopySources.cpp Mon May 31 19:36:53 2010
> @@ -116,11 +116,12 @@ CopySources::array(SVN::Pool &pool)
>       if (JNIUtil::isJavaExceptionThrown())
>         return NULL;
>
> -      JNIStringHolder path(jpath);
> +      const char *path = env->GetStringUTFChars(jpath, NULL);
>       if (JNIUtil::isJavaExceptionThrown())
>         return NULL;
>
> -      src->path = apr_pstrdup(p, (const char *) path);
> +      src->path = apr_pstrdup(p, path);
> +      env->ReleaseStringUTFChars(jpath, path);
>       SVN_JNI_ERR(JNIUtil::preprocessPath(src->path, pool.pool()),
>                   NULL);
>       env->DeleteLocalRef(jpath);
>
>
>