You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ivan Zhakov <ch...@gmail.com> on 2006/02/14 09:42:32 UTC

Re: svn commit: r18451 - in trunk/subversion: libsvn_client tests/cmdline

On 2/14/06, rooneg@tigris.org <ro...@tigris.org> wrote:
> Author: rooneg
> Date: Mon Feb 13 16:25:49 2006
> New Revision: 18451
>
> Modified:
>    trunk/subversion/libsvn_client/copy.c
>    trunk/subversion/tests/cmdline/copy_tests.py
>
> Log:
> Fix issue #2503, assertion failure cp URL -> URL.
>
> * subversion/libsvn_client/copy.c
>   (repos_to_repos_copy): If we're not copying to the repos root, and the
>    src URL is a child of the dest URL be sure to root the session at the
>    parent of the dest URL, otherwise we hit asserts later on.
>
> * subversion/tests/cmdline/copy_tests.py
>   (copy_deleted_dir_into_prefix): New test for this bug.
>   (test_list): Run the new test.

Garrett,
I consider it is not enougn to fix only client to send valid requests.
Anyway server should be aware of invalid requests without aborts(). If
client use old client it still can abort server, which is very bad and
can cause wedged repositories.

--
Ivan Zhakov

Re: svn commit: r18451 - in trunk/subversion: libsvn_client tests/cmdline

Posted by Ivan Zhakov <ch...@gmail.com>.
On 2/14/06, Garrett Rooney <ro...@electricjellyfish.net> wrote:
> On 2/14/06, Peter N. Lundblad <pe...@famlundblad.se> wrote:
> > On Tue, 14 Feb 2006, Michael Sinz wrote:
> >
> > > Ivan Zhakov wrote:
> > > > On 2/14/06, rooneg@tigris.org <ro...@tigris.org> wrote:
> > > >> Log:
> > > >> Fix issue #2503, assertion failure cp URL -> URL.
> > > >>
> > > > I consider it is not enougn to fix only client to send valid requests.
> > > > Anyway server should be aware of invalid requests without aborts(). If
> > > > client use old client it still can abort server, which is very bad and
> > > > can cause wedged repositories.
> > >
> > > I would put this even more emphatically:  A server should never abort() due
> > > to wire data.  aborts() should only happen due to software bugs (something
> > > that "can not happen" just happened) and not because input data is not of
> > > the correct format, especially for externally connected servers.  (That is,
> > > not closely coupled and secure systems)
> > >
> > I think everyone on this list agrees to this.  Note, however, that this
> > was a client bug causing a client crash.  See the issue for more info.
>
> Peter is correct, this assert was in libsvn_client, it has zero to do
> with server side code.
Oops, sorry. I mixed up with another assert() related bug in fs code.

--
Ivan Zhakov

Re: svn commit: r18451 - in trunk/subversion: libsvn_client tests/cmdline

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 2/14/06, Peter N. Lundblad <pe...@famlundblad.se> wrote:
> On Tue, 14 Feb 2006, Michael Sinz wrote:
>
> > Ivan Zhakov wrote:
> > > On 2/14/06, rooneg@tigris.org <ro...@tigris.org> wrote:
> > >> Log:
> > >> Fix issue #2503, assertion failure cp URL -> URL.
> > >>
> > > I consider it is not enougn to fix only client to send valid requests.
> > > Anyway server should be aware of invalid requests without aborts(). If
> > > client use old client it still can abort server, which is very bad and
> > > can cause wedged repositories.
> >
> > I would put this even more emphatically:  A server should never abort() due
> > to wire data.  aborts() should only happen due to software bugs (something
> > that "can not happen" just happened) and not because input data is not of
> > the correct format, especially for externally connected servers.  (That is,
> > not closely coupled and secure systems)
> >
> I think everyone on this list agrees to this.  Note, however, that this
> was a client bug causing a client crash.  See the issue for more info.

Peter is correct, this assert was in libsvn_client, it has zero to do
with server side code.

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: svn commit: r18451 - in trunk/subversion: libsvn_client tests/cmdline

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Tue, 14 Feb 2006, Michael Sinz wrote:

> Ivan Zhakov wrote:
> > On 2/14/06, rooneg@tigris.org <ro...@tigris.org> wrote:
> >> Log:
> >> Fix issue #2503, assertion failure cp URL -> URL.
> >>
> > I consider it is not enougn to fix only client to send valid requests.
> > Anyway server should be aware of invalid requests without aborts(). If
> > client use old client it still can abort server, which is very bad and
> > can cause wedged repositories.
>
> I would put this even more emphatically:  A server should never abort() due
> to wire data.  aborts() should only happen due to software bugs (something
> that "can not happen" just happened) and not because input data is not of
> the correct format, especially for externally connected servers.  (That is,
> not closely coupled and secure systems)
>
I think everyone on this list agrees to this.  Note, however, that this
was a client bug causing a client crash.  See the issue for more info.

Regards,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: r18451 - in trunk/subversion: libsvn_client tests/cmdline

Posted by Michael Sinz <Mi...@sinz.org>.
Ivan Zhakov wrote:
> On 2/14/06, rooneg@tigris.org <ro...@tigris.org> wrote:
>> Author: rooneg
>> Date: Mon Feb 13 16:25:49 2006
>> New Revision: 18451
>>
>> Modified:
>>    trunk/subversion/libsvn_client/copy.c
>>    trunk/subversion/tests/cmdline/copy_tests.py
>>
>> Log:
>> Fix issue #2503, assertion failure cp URL -> URL.
>>
>> * subversion/libsvn_client/copy.c
>>   (repos_to_repos_copy): If we're not copying to the repos root, and the
>>    src URL is a child of the dest URL be sure to root the session at the
>>    parent of the dest URL, otherwise we hit asserts later on.
>>
>> * subversion/tests/cmdline/copy_tests.py
>>   (copy_deleted_dir_into_prefix): New test for this bug.
>>   (test_list): Run the new test.
> 
> Garrett,
> I consider it is not enougn to fix only client to send valid requests.
> Anyway server should be aware of invalid requests without aborts(). If
> client use old client it still can abort server, which is very bad and
> can cause wedged repositories.

I would put this even more emphatically:  A server should never abort() due
to wire data.  aborts() should only happen due to software bugs (something
that "can not happen" just happened) and not because input data is not of
the correct format, especially for externally connected servers.  (That is,
not closely coupled and secure systems)

As long as a certain stream of input data to the server can abort() the
server there is a trivial DOS attack on that server.  As such I would claim
that if there is such an attack possible, there is a major bug that needs
addressing.  (Just think of someone attacking the public Apache or Subversion
server that way...)

-- 
Michael Sinz                     Technology and Engineering Director/Consultant
"Starting Startups"                                mailto:michael.sinz@sinz.org
My place on the web                            http://www.sinz.org/Michael.Sinz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org