On Tue, 15 May 2007, Kamesh Jayachandran wrote:
> Currently 'svn merge' from a WC which has no copy_source segfaults.
Nice catch, Kamesh. A question below...
> Fix segfault on svn merge source detection.
> * subversion/libsvn_client/log.c
> Don't assume copy source to exist always.
> Patch by: kameshj
> Index: subversion/libsvn_client/log.c
> --- subversion/libsvn_client/log.c (revision 25012)
> +++ subversion/libsvn_client/log.c (working copy)
> @@ -233,7 +233,8 @@
> /* ### TODO: Use RA APIs directly to improve efficiency. */
> SVN_ERR(svn_client__get_copy_source(path_or_url, revision, ©from_path,
> ©from_rev, ctx, pool));
> - APR_ARRAY_PUSH(*suggestions, const char *) = copyfrom_path;
> + if (copyfrom_path)
> + APR_ARRAY_PUSH(*suggestions, const char *) = copyfrom_path;
> SVN_ERR(svn_client_get_mergeinfo(&mergeinfo, path_or_url, revision,
> ctx, pool));
> @@ -241,7 +242,7 @@
> const char *path;
> apr_hash_this(hi, (void *) &path, NULL, NULL);
> - if (strcmp(path, copyfrom_path) != 0)
> + if (copyfrom_path && strcmp(path, copyfrom_path) != 0)
Shouldn't this be?:
if (copyfrom_path == NULL || strcmp(path, copyfrom_path) != 0)
> APR_ARRAY_PUSH(*suggestions, const char *) = apr_pstrdup(pool, path);
Received on Tue May 15 19:30:07 2007
- application/pgp-signature attachment: stored