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

Re: [PATCH]Fix Segfault while detecting the implicit merge source

From: Daniel Rall <dlr_at_collab.net>
Date: 2007-05-15 19:29:54 CEST

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
> (svn_client__suggest_merge_sources):
> 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, &copyfrom_path,
> &copyfrom_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);
> }

  • application/pgp-signature attachment: stored
Received on Tue May 15 19:30:07 2007

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