On Fri, Jun 21, 2013 at 2:25 PM, Stefan Küng <tortoise...@gmail.com> wrote:
> Hi,
>
> Another one from the crash reports:
>
> in libsvn_client\log.c, line 715, function run_ra_get_log():
>
> matching_segment = bsearch(&younger_rev, log_segments->elts,
>                            log_segments->nelts, log_segments->elt_size,
>                            compare_rev_to_segment);
> SVN_ERR_ASSERT(*matching_segment);

I tried to create a test for this, but I can't.  So while I'm still
stumped how the only caller of run_ra_get_log could ever provide
LOG_SEGMENTS which doesn't represent the history of PATHS from the
oldest to youngest revs in REVISION_RANGES (including empty gaps!),
clearly this is happening.  Fixed in r1496110. I'll nominate for
backport to 1.8.1.

--
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

P.S. Stefan - per my earlier private request, I'd still like full
access to the crash reports server.  I'd still like to be able to
reproduce this.

> The crash report indicates that 'matching_segment' is NULL, as 'bsearch' can
> return according to the docs.
>
> First problem: the SVN_ERR_ASSERT() is wrong since it tries to access the
> returned pointer instead of checking the pointer itself:
>
> SVN_ERR_ASSERT(matching_segment);
>
> would be the correct way to do this.
>
> The other problem is that the pointer actually is NULL and therefore the
> assertion (if it was coded properly) would have triggered. Instead I now get
> crash reports for this.
> https://www.crash-server.com/Problem.aspx?ClientID=tsvn&ProblemID=26730
>
>
> Stefan
>
> --
>        ___
>   oo  // \\      "De Chelonian Mobile"
>  (_,\/ \_/ \     TortoiseSVN
>    \ \_/_\_/>    The coolest interface to (Sub)version control
>    /_/   \_\     http://tortoisesvn.net

Reply via email to