Author: breser
Date: Wed Oct 31 04:59:42 2012
New Revision: 1403982

URL: http://svn.apache.org/viewvc?rev=1403982&view=rev
Log:
Fix a compile warning and a memory leak in rep_write_cleanup.

* subversion/libsvn_fs_fs/fs_fs.c
  (rep_write_cleanup): txn_id shouldn't be a const and need to clear the err
    since we don't return it.

Found by: danielsh
(danielsh found the leak of the errors, I found the const)

Modified:
    subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1403982&r1=1403981&r2=1403982&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Wed Oct 31 04:59:42 2012
@@ -7086,21 +7086,33 @@ static apr_status_t
 rep_write_cleanup(void *data)
 {
   struct rep_write_baton *b = data;
-  char *txn_id = svn_fs_fs__id_txn_id(b->noderev->id);
+  const char *txn_id = svn_fs_fs__id_txn_id(b->noderev->id);
   svn_error_t *err;
   
   /* Truncate and close the protorevfile. */
   err = svn_io_file_trunc(b->file, b->rep_offset, b->pool);
   if (err)
-    return err->apr_err;
+    {
+      apr_status_t rc = err->apr_err;
+      svn_error_clear(err);
+      return rc;
+    }
   err = svn_io_file_close(b->file, b->pool);
   if (err)
-    return err->apr_err;
+    {
+      apr_status_t rc = err->apr_err;
+      svn_error_clear(err);
+      return rc;
+    }
 
   /* Remove our lock */
   err = unlock_proto_rev(b->fs, txn_id, b->lockcookie, b->pool);
   if (err)
-    return err->apr_err;
+    {
+      apr_status_t rc = err->apr_err;
+      svn_error_clear(err);
+      return rc;
+    }
 
   return APR_SUCCESS;
 }


Reply via email to