You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by David Glasser <gl...@davidglasser.net> on 2007/12/20 01:42:46 UTC
Re: svn commit: r28578 - trunk/subversion/libsvn_fs_fs
This should probably be backported?
--dave
On Dec 19, 2007 5:42 PM, <gl...@tigris.org> wrote:
> Author: glasser
> Date: Wed Dec 19 17:42:24 2007
> New Revision: 28578
>
> Log:
> Fix cleared-error leak in FSFS. Specifically, if a move-into-place
> fails due to the paths being on different filesystems, we clear the
> error and fall back to a copy... but then we return the (destroyed)
> error anyway. This can be triggered by (say) making the transactions/
> directory be a symlink to another filesystem. (In this particular
> case, this can trigger a segfault.)
>
> * subversion/libsvn_fs_fs/fs_fs.c
> (svn_fs_fs__move_into_place): Set err to SVN_NO_ERROR after destroying
> it.
>
>
> Modified:
> trunk/subversion/libsvn_fs_fs/fs_fs.c
>
> Modified: trunk/subversion/libsvn_fs_fs/fs_fs.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_fs_fs/fs_fs.c?pathrev=28578&r1=28577&r2=28578
> ==============================================================================
> --- trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
> +++ trunk/subversion/libsvn_fs_fs/fs_fs.c Wed Dec 19 17:42:24 2007
> @@ -4737,6 +4737,7 @@
>
> /* Can't rename across devices; fall back to copying. */
> svn_error_clear(err);
> + err = SVN_NO_ERROR;
> SVN_ERR(svn_io_copy_file(old_filename, new_filename, TRUE, pool));
>
> /* Flush the target of the copy to disk. */
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svn-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: svn-help@subversion.tigris.org
>
>
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn commit: r28578 - trunk/subversion/libsvn_fs_fs
Posted by David Glasser <gl...@davidglasser.net>.
Nominated, with your vote.
--dave
On Dec 19, 2007 8:43 PM, Daniel Rall <dl...@finemaltcoding.com> wrote:
> Yup, +1.
>
>
> On Wed, 19 Dec 2007, David Glasser wrote:
>
> > This should probably be backported?
> >
> > --dave
> >
> > On Dec 19, 2007 5:42 PM, <gl...@tigris.org> wrote:
> > > Author: glasser
> > > Date: Wed Dec 19 17:42:24 2007
> > > New Revision: 28578
> > >
> > > Log:
> > > Fix cleared-error leak in FSFS. Specifically, if a move-into-place
> > > fails due to the paths being on different filesystems, we clear the
> > > error and fall back to a copy... but then we return the (destroyed)
> > > error anyway. This can be triggered by (say) making the transactions/
> > > directory be a symlink to another filesystem. (In this particular
> > > case, this can trigger a segfault.)
> > >
> > > * subversion/libsvn_fs_fs/fs_fs.c
> > > (svn_fs_fs__move_into_place): Set err to SVN_NO_ERROR after destroying
> > > it.
> > >
> > >
> > > Modified:
> > > trunk/subversion/libsvn_fs_fs/fs_fs.c
> > >
> > > Modified: trunk/subversion/libsvn_fs_fs/fs_fs.c
> > > URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_fs_fs/fs_fs.c?pathrev=28578&r1=28577&r2=28578
> > > ==============================================================================
> > > --- trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
> > > +++ trunk/subversion/libsvn_fs_fs/fs_fs.c Wed Dec 19 17:42:24 2007
> > > @@ -4737,6 +4737,7 @@
> > >
> > > /* Can't rename across devices; fall back to copying. */
> > > svn_error_clear(err);
> > > + err = SVN_NO_ERROR;
> > > SVN_ERR(svn_io_copy_file(old_filename, new_filename, TRUE, pool));
> > >
> > > /* Flush the target of the copy to disk. */
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: svn-unsubscribe@subversion.tigris.org
> > > For additional commands, e-mail: svn-help@subversion.tigris.org
> > >
> > >
> >
> >
> >
> > --
> > David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> > For additional commands, e-mail: dev-help@subversion.tigris.org
>
> --
>
> Daniel Rall
>
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn commit: r28578 - trunk/subversion/libsvn_fs_fs
Posted by Daniel Rall <dl...@finemaltcoding.com>.
Yup, +1.
On Wed, 19 Dec 2007, David Glasser wrote:
> This should probably be backported?
>
> --dave
>
> On Dec 19, 2007 5:42 PM, <gl...@tigris.org> wrote:
> > Author: glasser
> > Date: Wed Dec 19 17:42:24 2007
> > New Revision: 28578
> >
> > Log:
> > Fix cleared-error leak in FSFS. Specifically, if a move-into-place
> > fails due to the paths being on different filesystems, we clear the
> > error and fall back to a copy... but then we return the (destroyed)
> > error anyway. This can be triggered by (say) making the transactions/
> > directory be a symlink to another filesystem. (In this particular
> > case, this can trigger a segfault.)
> >
> > * subversion/libsvn_fs_fs/fs_fs.c
> > (svn_fs_fs__move_into_place): Set err to SVN_NO_ERROR after destroying
> > it.
> >
> >
> > Modified:
> > trunk/subversion/libsvn_fs_fs/fs_fs.c
> >
> > Modified: trunk/subversion/libsvn_fs_fs/fs_fs.c
> > URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_fs_fs/fs_fs.c?pathrev=28578&r1=28577&r2=28578
> > ==============================================================================
> > --- trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
> > +++ trunk/subversion/libsvn_fs_fs/fs_fs.c Wed Dec 19 17:42:24 2007
> > @@ -4737,6 +4737,7 @@
> >
> > /* Can't rename across devices; fall back to copying. */
> > svn_error_clear(err);
> > + err = SVN_NO_ERROR;
> > SVN_ERR(svn_io_copy_file(old_filename, new_filename, TRUE, pool));
> >
> > /* Flush the target of the copy to disk. */
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: svn-unsubscribe@subversion.tigris.org
> > For additional commands, e-mail: svn-help@subversion.tigris.org
> >
> >
>
>
>
> --
> David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
--
Daniel Rall