~ubuntu-branches/debian/sid/subversion/sid

« back to all changes in this revision

Viewing changes to subversion/libsvn_subr/gpg_agent.c

  • Committer: Package Import Robot
  • Author(s): James McCoy
  • Date: 2015-08-07 21:32:47 UTC
  • mfrom: (0.2.15) (4.1.7 experimental)
  • Revision ID: package-import@ubuntu.com-20150807213247-ozyewtmgsr6tkewl
Tags: 1.9.0-1
* Upload to unstable
* New upstream release.
  + Security fixes
    - CVE-2015-3184: Mixed anonymous/authenticated path-based authz with
      httpd 2.4
    - CVE-2015-3187: svn_repos_trace_node_locations() reveals paths hidden
      by authz
* Add >= 2.7 requirement for python-all-dev Build-Depends, needed to run
  tests.
* Remove Build-Conflicts against ruby-test-unit.  (Closes: #791844)
* Remove patches/apache_module_dependency in favor of expressing the
  dependencies in authz_svn.load/dav_svn.load.
* Build-Depend on apache2-dev (>= 2.4.16) to ensure ap_some_authn_required()
  is available when building mod_authz_svn and Depend on apache2-bin (>=
  2.4.16) for runtime support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
76
76
#include "svn_user.h"
77
77
#include "svn_dirent_uri.h"
78
78
 
 
79
#include "auth.h"
79
80
#include "private/svn_auth_private.h"
80
81
 
81
82
#include "svn_private_config.h"
107
108
 * to other password caching mechanisms. */
108
109
static svn_error_t *
109
110
get_cache_id(const char **cache_id_p, const char *realmstring,
110
 
             apr_pool_t *scratch_pool, apr_pool_t *result_pool)
 
111
             apr_pool_t *result_pool, apr_pool_t *scratch_pool)
111
112
{
112
113
  const char *cache_id = NULL;
113
114
  svn_checksum_t *digest = NULL;
208
209
 
209
210
  /* This implements the method of finding the socket as described in
210
211
   * the gpg-agent man page under the --use-standard-socket option.
211
 
   * The manage page misleadingly says the standard socket is 
 
212
   * The manage page misleadingly says the standard socket is
212
213
   * "named 'S.gpg-agent' located in the home directory."  The standard
213
214
   * socket path is actually in the .gnupg directory in the home directory,
214
215
   * i.e. ~/.gnupg/S.gpg-agent */
218
219
      apr_array_header_t *socket_details;
219
220
 
220
221
      /* For reference GPG_AGENT_INFO consists of 3 : separated fields.
221
 
       * The path to the socket, the pid of the gpg-agent process and 
 
222
       * The path to the socket, the pid of the gpg-agent process and
222
223
       * finally the version of the protocol the agent talks. */
223
224
      socket_details = svn_cstring_split(gpg_agent_info, ":", TRUE,
224
225
                                         pool);
232
233
        return SVN_NO_ERROR;
233
234
 
234
235
      socket_name = svn_dirent_join_many(pool, homedir, ".gnupg",
235
 
                                         "S.gpg-agent", NULL);
 
236
                                         "S.gpg-agent", SVN_VA_NULL);
236
237
    }
237
238
 
238
239
  if (socket_name != NULL)
629
630
 
630
631
/* Public API */
631
632
void
632
 
svn_auth_get_gpg_agent_simple_provider(svn_auth_provider_object_t **provider,
 
633
svn_auth__get_gpg_agent_simple_provider(svn_auth_provider_object_t **provider,
633
634
                                       apr_pool_t *pool)
634
635
{
635
636
  svn_auth_provider_object_t *po = apr_pcalloc(pool, sizeof(*po));