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