Bug#644409: rapidsvn SEGV with Subversion 1.7
Package: rapidsvn
Version: 0.12.0dfsg-2
Severity: normal
Tags: patch
The current released version of rapidsvn is incompatible with the
upcoming Subversion 1.7 due to the way rapidsvn constructs the
Subversion client context object. This causes rapidsvn to SEGV
on the first working copy operation.
A fix for this problem has been committed to rapidsvn trunk, but
is not yet in any release. The patch is r8195 in the upstream
repository.
Index: ../../rapidsvn-trunk/AUTHORS
===================================================================
--- ../../rapidsvn-trunk/AUTHORS (revision 8194)
+++ ../../rapidsvn-trunk/AUTHORS (revision 8195)
@@ -76,4 +76,4 @@
csola48 - translation
Alexey Reztsov - translation
Viet NQ - source code
-
+ Philip Martin - source code
Index: ../../rapidsvn-trunk/src/svncpp/context.cpp
===================================================================
--- ../../rapidsvn-trunk/src/svncpp/context.cpp (revision 8194)
+++ ../../rapidsvn-trunk/src/svncpp/context.cpp (revision 8195)
@@ -65,7 +65,7 @@
bool logIsSet;
int promptCounter;
Pool pool;
- svn_client_ctx_t ctx;
+ svn_client_ctx_t * ctx;
std::string username;
std::string password;
std::string logMessage;
@@ -180,22 +180,22 @@
svn_auth_open(&ab, providers, pool);
// initialize ctx structure
- memset(&ctx, 0, sizeof(ctx));
+ svn_client_create_context(&ctx, pool);
// get the config based on the configDir passed in
- svn_config_get_config(&ctx.config, c_configDir, pool);
+ svn_config_get_config(&ctx->config, c_configDir, pool);
// tell the auth functions where the config is
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
c_configDir);
- ctx.auth_baton = ab;
- ctx.log_msg_func = onLogMsg;
- ctx.log_msg_baton = this;
- ctx.notify_func2 = onNotify2;
- ctx.notify_baton2 = this;
- ctx.cancel_func = onCancel;
- ctx.cancel_baton = this;
+ ctx->auth_baton = ab;
+ ctx->log_msg_func = onLogMsg;
+ ctx->log_msg_baton = this;
+ ctx->notify_func2 = onNotify2;
+ ctx->notify_baton2 = this;
+ ctx->cancel_func = onCancel;
+ ctx->cancel_baton = this;
}
void setAuthCache(bool value)
@@ -204,7 +204,7 @@
if (!value)
param = (void *)"1";
- svn_auth_set_parameter(ctx.auth_baton,
+ svn_auth_set_parameter(ctx->auth_baton,
SVN_AUTH_PARAM_NO_AUTH_CACHE,
param);
}
@@ -215,7 +215,7 @@
username = usr;
password = pwd;
- svn_auth_baton_t * ab = ctx.auth_baton;
+ svn_auth_baton_t * ab = ctx->auth_baton;
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
username.c_str());
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
@@ -604,13 +604,13 @@
Context::operator svn_client_ctx_t * ()
{
- return &(m->ctx);
+ return m->ctx;
}
svn_client_ctx_t *
Context::ctx()
{
- return &(m->ctx);
+ return m->ctx;
}
void
-- System Information:
Debian Release: 6.0.2
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages rapidsvn depends on:
ii libapr1 1.4.2-6+squeeze3 The Apache Portable Runtime Librar
ii libaprutil1 1.3.9+dfsg-5 The Apache Portable Runtime Utilit
ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib
ii libdb4.8 4.8.30-2 Berkeley v4.8 Database Libraries [
ii libexpat1 2.0.1-7 XML parsing C library - runtime li
ii libgcc1 1:4.4.5-8 GCC support library
ii libstdc++6 4.4.5-8 The GNU Standard C++ Library v3
ii libsvn1 1.6.12dfsg-6 Shared libraries used by Subversio
ii libsvncpp3 0.12.0dfsg-2 Subversion C++ shared library
ii libuuid1 2.17.2-9 Universally Unique ID library
ii libwxbase2.8-0 2.8.10.1-3+b1 wxBase library (runtime) - non-GUI
ii libwxgtk2.8-0 2.8.10.1-3+b1 wxWidgets Cross-platform C++ GUI t
Versions of packages rapidsvn recommends:
ii ssh-askpass 1:1.2.4.1-9 under X, asks user for a passphras
rapidsvn suggests no packages.
-- no debconf information
Reply to: