[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn+ssh crash on checkout

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Fri, 19 Dec 2008 10:23:05 +0000

On Fri, 2008-12-19 at 00:11 -0600, Hyrum K. Wright wrote:
> I just attempted to checkout a working copy via svn+ssh:
>
> hyrum-wrights-macbook-pro:dev Hyrum$ svnd co svn+ssh://example.com/var/svn/sdp out
> hwright_at_example.com's password:
> Bus error
>
> Running the same command in the debugger gives the following backtrace:
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_PROTECTION_FAILURE at address: 0x0018acb6
> 0x000fdbce in try_auth (sess=0x1021490, sasl_ctx=0x1024400, success=0xbfffeed4,
> last_err=0xbfffeee0, mechstring=0x18acb6 "EXTERNAL", pool=0x766018) at
> subversion/libsvn_ra_svn/cyrus_auth.c:406
[...]

> This seems to be a pretty serious bug in the client, but I don't know how many
> people it will impact. Hopefully the stack trace helps somebody debug this.

Yes, the stack trace is all I needed to find the bug:

[[[
* Perform an authentication exchange */
static svn_error_t *try_auth(svn_ra_svn__session_baton_t *sess,
                             sasl_conn_t *sasl_ctx,
                             svn_boolean_t *success,
                             const char **last_err,
                             const char *mechstring, <== Note "const" ...
                             apr_pool_t *pool)
{
[...]
         default:
            /* For anything else, delete the mech from the list
               and try again. */
            {
              char *dst = strstr(mechstring, mech); <== ... silently discarded.
              char *src = dst + strlen(mech);
              while ((*dst++ = *src++) != '\0') <== Line 406, EXC_BAD_ACCESS
                ;
              again = TRUE;
            }
]]]

Fixing now...

- Julian

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=987327
Received on 2008-12-19 11:18:31 CET

This is an archived mail posted to the Subversion Dev mailing list.