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

« back to all changes in this revision

Viewing changes to subversion/mod_dav_svn/activity.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:
193
193
                        const char *txn_name)
194
194
{
195
195
  const char *final_path;
196
 
  const char *tmp_path;
197
196
  const char *activity_contents;
198
197
  svn_error_t *err;
199
198
 
209
208
  activity_contents = apr_psprintf(repos->pool, "%s\n%s\n",
210
209
                                   txn_name, activity_id);
211
210
 
212
 
  /* ### is there another directory we already have and can write to? */
213
 
  err = svn_io_write_unique(&tmp_path,
214
 
                            svn_dirent_dirname(final_path, repos->pool),
 
211
  err = svn_io_write_atomic(final_path,
215
212
                            activity_contents, strlen(activity_contents),
216
 
                            svn_io_file_del_none, repos->pool);
 
213
                            NULL /* copy_perms path */, repos->pool);
217
214
  if (err)
218
215
    {
219
216
      svn_error_t *serr = svn_error_quick_wrap(err,
225
222
                                  repos->pool);
226
223
    }
227
224
 
228
 
  err = svn_io_file_rename(tmp_path, final_path, repos->pool);
229
 
  if (err)
230
 
    {
231
 
      svn_error_clear(svn_io_remove_file2(tmp_path, TRUE, repos->pool));
232
 
      return dav_svn__convert_err(err, HTTP_INTERNAL_SERVER_ERROR,
233
 
                                  "could not replace files.",
234
 
                                  repos->pool);
235
 
    }
236
 
 
237
225
  return NULL;
238
226
}
239
227