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 2011/07/24 19:29:23 UTC
svn commit: r1150441 - /subversion/trunk/subversion/libsvn_subr/subst.c
Author: rhuijben
Date: Sun Jul 24 17:29:23 2011
New Revision: 1150441
URL: http://svn.apache.org/viewvc?rev=1150441&view=rev
Log:
And resolve another open file handle problem: Translated streams are not closed
when an error occurs in the final translate. This makes us delete an open file
in svn_subst_copy_and_translate4.
* subversion/libsvn_subr/subst.c
(translated_stream_close): Close inner stream and destroy subpool on errors.
Modified:
subversion/trunk/subversion/libsvn_subr/subst.c
Modified: subversion/trunk/subversion/libsvn_subr/subst.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/subst.c?rev=1150441&r1=1150440&r2=1150441&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/subst.c (original)
+++ subversion/trunk/subversion/libsvn_subr/subst.c Sun Jul 24 17:29:23 2011
@@ -1267,15 +1267,16 @@ static svn_error_t *
translated_stream_close(void *baton)
{
struct translated_stream_baton *b = baton;
+ svn_error_t *err = NULL;
if (b->written)
- SVN_ERR(translate_chunk(b->stream, b->out_baton, NULL, 0, b->iterpool));
+ err = translate_chunk(b->stream, b->out_baton, NULL, 0, b->iterpool);
- SVN_ERR(svn_stream_close(b->stream));
+ err = svn_error_compose_create(err, svn_stream_close(b->stream));
svn_pool_destroy(b->iterpool);
- return SVN_NO_ERROR;
+ return svn_error_trace(err);
}