You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2015/01/29 17:12:17 UTC

svn commit: r1655723 - in /subversion/trunk/subversion: bindings/javahl/native/CommitMessage.cpp libsvn_client/copy.c

Author: rhuijben
Date: Thu Jan 29 16:12:16 2015
New Revision: 1655723

URL: http://svn.apache.org/r1655723
Log:
Fix an exception in JavaHL caused by an invalid enum value at different layers.

* subversion/bindings/javahl/native/CommitMessage.cpp
  (CommitMessage::getCommitMessage):
      If constructing the item failed we should return.

* subversion/libsvn_client/copy.c
  (try_copy): Property initialize src_kind field.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CommitMessage.cpp
    subversion/trunk/subversion/libsvn_client/copy.c

Modified: subversion/trunk/subversion/bindings/javahl/native/CommitMessage.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CommitMessage.cpp?rev=1655723&r1=1655722&r2=1655723&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CommitMessage.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CommitMessage.cpp Thu Jan 29 16:12:16 2015
@@ -94,6 +94,9 @@ CommitMessage::getCommitMessage(const ch
 
       jobject jitem = CreateJ::CommitItem(item);
 
+      if (!jitem)
+        return SVN_NO_ERROR; /* Exception thrown */
+
       // store the Java object into the array
       jitems.push_back(jitem);
     }

Modified: subversion/trunk/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/copy.c?rev=1655723&r1=1655722&r2=1655723&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/copy.c (original)
+++ subversion/trunk/subversion/libsvn_client/copy.c Thu Jan 29 16:12:16 2015
@@ -2008,7 +2008,7 @@ try_copy(svn_boolean_t *timestamp_sleep,
         {
           svn_client_copy_source_t *source = APR_ARRAY_IDX(sources, i,
                                                svn_client_copy_source_t *);
-          svn_client__copy_pair_t *pair = apr_palloc(pool, sizeof(*pair));
+          svn_client__copy_pair_t *pair = apr_pcalloc(pool, sizeof(*pair));
           const char *src_basename;
           svn_boolean_t src_is_url = svn_path_is_url(source->path);
 
@@ -2030,6 +2030,7 @@ try_copy(svn_boolean_t *timestamp_sleep,
 
           pair->src_op_revision = *source->revision;
           pair->src_peg_revision = *source->peg_revision;
+          pair->src_kind = svn_node_unknown;
 
           SVN_ERR(svn_opt_resolve_revisions(&pair->src_peg_revision,
                                             &pair->src_op_revision,
@@ -2058,7 +2059,7 @@ try_copy(svn_boolean_t *timestamp_sleep,
   else
     {
       /* Only one source path. */
-      svn_client__copy_pair_t *pair = apr_palloc(pool, sizeof(*pair));
+      svn_client__copy_pair_t *pair = apr_pcalloc(pool, sizeof(*pair));
       svn_client_copy_source_t *source =
         APR_ARRAY_IDX(sources, 0, svn_client_copy_source_t *);
       svn_boolean_t src_is_url = svn_path_is_url(source->path);
@@ -2070,6 +2071,7 @@ try_copy(svn_boolean_t *timestamp_sleep,
                                         source->path, pool));
       pair->src_op_revision = *source->revision;
       pair->src_peg_revision = *source->peg_revision;
+      pair->src_kind = svn_node_unknown;
 
       SVN_ERR(svn_opt_resolve_revisions(&pair->src_peg_revision,
                                         &pair->src_op_revision,