[ 
https://issues.apache.org/jira/browse/SVN-4584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Zhakov updated SVN-4584:
-----------------------------
    Fix Version/s: 1.8.15

The fix was backported to 1.8.x in r1701152 and released in Subversion 1.8.15.

> Non-canonical $HOME crashes GPG-agent support code
> --------------------------------------------------
>
>                 Key: SVN-4584
>                 URL: https://issues.apache.org/jira/browse/SVN-4584
>             Project: Subversion
>          Issue Type: Bug
>          Components: libsvn_subr
>    Affects Versions: 1.8.x
>            Reporter: Julian Foad
>             Fix For: 1.8.15, 1.9.1
>
>
> {noformat:nopanel=true}
> The 'svn' client can suffer an assertion failure during authentication to a 
> server:
>   svn: subversion/libsvn_subr/dirent_uri.c:1050: svn_dirent_join_many: 
> Assertion
> `svn_dirent_is_canonical(base, pool)' failed.
> if (at least) the following conditions are true:
>   * The value of $HOME [1] is non-canonical according to 
> svn_dirent_is_canonical()
>     but resolves to a valid home directory according to typical 
> interpretations.
>     For example, '/home/myname/' or '//home/myname/'.
>   * GPG-agent support is enabled in the 'password-stores' config option.
>   * The environment variable $GPG_AGENT_INFO is not set.
>   * Some conditions related to the sequence in which the Subversion client 
> gets
>     authentication credentials. For example, it can be triggered after a 
> correct
>     password is entered at a prompt, or if the correct username and password 
> are
>     given on the command line and the authentication username is not equal to
>     the OS username.
> The problem was seen and reported by a WANdisco customer running Subversion
> 1.8.11 and observing that this was a regression from 1.8.8. In this instance,
> the value of $HOME had a trailing slash.
> I found that the problem was introduced in Subversion 1.8.11, in the function
> find_running_gpg_agent() which calls:
>   homedir = svn_user_get_homedir(pool);
>   ... socket_name = svn_dirent_join_many(pool, homedir, ...);
> The only previous caller of svn_user_get_homedir() canonicalizes the result
> before passing it to svn_dirent_join_many(); this new code does not.
> [1] If $HOME is not set, then Subversion would instead use the home directory
> path reported by the operating system via APR. I have not confirmed whether 
> that
> could be non-canonical.
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to