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