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 <[email protected]>

* 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);


Reply via email to