You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2010/08/19 17:53:53 UTC

svn commit: r987200 - in /subversion/trunk/subversion/libsvn_ra_serf: property.c ra_serf.h serf.c

Author: ivan
Date: Thu Aug 19 15:53:52 2010
New Revision: 987200

URL: http://svn.apache.org/viewvc?rev=987200&view=rev
Log:
Resolve error leak.

* subversion/libsvn_ra_serf/property.c
* subversion/libsvn_ra_serf/ra_serf.h
  (svn_ra_serf__walk_all_paths): Change signature to return svn_error_t 
   and handle error from dirent walker callback.
* subversion/libsvn_ra_serf/serf.c
  (svn_ra_serf__get_dir): Handle error.

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/property.c
    subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
    subversion/trunk/subversion/libsvn_ra_serf/serf.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/property.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/property.c?rev=987200&r1=987199&r2=987200&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/property.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/property.c Thu Aug 19 15:53:52 2010
@@ -788,7 +788,7 @@ svn_ra_serf__walk_all_props(apr_hash_t *
   return SVN_NO_ERROR;
 }
 
-void
+svn_error_t *
 svn_ra_serf__walk_all_paths(apr_hash_t *props,
                             svn_revnum_t rev,
                             svn_ra_serf__path_rev_walker_t walker,
@@ -802,7 +802,7 @@ svn_ra_serf__walk_all_paths(apr_hash_t *
 
   if (!ver_props)
     {
-      return;
+      return SVN_NO_ERROR;
     }
 
   for (path_hi = apr_hash_first(pool, ver_props); path_hi;
@@ -831,11 +831,13 @@ svn_ra_serf__walk_all_paths(apr_hash_t *
 
               apr_hash_this(name_hi, &prop_name, &prop_len, &prop_val);
               /* use a subpool? */
-              walker(baton, path_name, path_len, ns_name, ns_len,
-                     prop_name, prop_len, prop_val, pool);
+              SVN_ERR(walker(baton, path_name, path_len, ns_name, ns_len,
+                             prop_name, prop_len, prop_val, pool));
             }
         }
     }
+
+  return SVN_NO_ERROR;
 }
 
 static svn_error_t *

Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=987200&r1=987199&r2=987200&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Thu Aug 19 15:53:52 2010
@@ -994,7 +994,7 @@ typedef svn_error_t *
                                   const char *name, apr_ssize_t name_len,
                                   const svn_string_t *val,
                                   apr_pool_t *pool);
-void
+svn_error_t *
 svn_ra_serf__walk_all_paths(apr_hash_t *props,
                             svn_revnum_t rev,
                             svn_ra_serf__path_rev_walker_t walker,

Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=987200&r1=987199&r2=987200&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Thu Aug 19 15:53:52 2010
@@ -907,8 +907,8 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
       dirent_walk.base_paths = apr_hash_make(pool);
       dirent_walk.orig_path = svn_uri_canonicalize(path, pool);
 
-      svn_ra_serf__walk_all_paths(props, revision, path_dirent_walker,
-                                  &dirent_walk, pool);
+      SVN_ERR(svn_ra_serf__walk_all_paths(props, revision, path_dirent_walker,
+                                          &dirent_walk, pool));
 
       *dirents = dirent_walk.base_paths;
     }