|
|
6712ef |
# ./pullrev.sh 1667248
|
|
|
6712ef |
|
|
|
6712ef |
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2015-0251
|
|
|
6712ef |
|
|
|
6712ef |
http://svn.apache.org/viewvc?view=revision&revision=1667248
|
|
|
6712ef |
|
|
|
6712ef |
--- subversion-1.7.14/subversion/mod_dav_svn/deadprops.c
|
|
|
6712ef |
+++ subversion-1.7.14/subversion/mod_dav_svn/deadprops.c
|
|
|
6712ef |
@@ -160,6 +160,23 @@
|
|
|
6712ef |
}
|
|
|
6712ef |
|
|
|
6712ef |
|
|
|
6712ef |
+static svn_error_t *
|
|
|
6712ef |
+change_txn_prop(svn_fs_txn_t *txn,
|
|
|
6712ef |
+ const char *propname,
|
|
|
6712ef |
+ const svn_string_t *value,
|
|
|
6712ef |
+ apr_pool_t *scratch_pool)
|
|
|
6712ef |
+{
|
|
|
6712ef |
+ if (strcmp(propname, SVN_PROP_REVISION_AUTHOR) == 0)
|
|
|
6712ef |
+ return svn_error_create(SVN_ERR_RA_DAV_REQUEST_FAILED, NULL,
|
|
|
6712ef |
+ "Attempted to modify 'svn:author' property "
|
|
|
6712ef |
+ "on a transaction");
|
|
|
6712ef |
+
|
|
|
6712ef |
+ SVN_ERR(svn_repos_fs_change_txn_prop(txn, propname, value, scratch_pool));
|
|
|
6712ef |
+
|
|
|
6712ef |
+ return SVN_NO_ERROR;
|
|
|
6712ef |
+}
|
|
|
6712ef |
+
|
|
|
6712ef |
+
|
|
|
6712ef |
static dav_error *
|
|
|
6712ef |
save_value(dav_db *db, const dav_prop_name *name,
|
|
|
6712ef |
const svn_string_t *const *old_value_p,
|
|
|
6712ef |
@@ -210,9 +227,8 @@
|
|
|
6712ef |
{
|
|
|
6712ef |
if (db->resource->working)
|
|
|
6712ef |
{
|
|
|
6712ef |
- serr = svn_repos_fs_change_txn_prop(resource->info->root.txn,
|
|
|
6712ef |
- propname, value,
|
|
|
6712ef |
- subpool);
|
|
|
6712ef |
+ serr = change_txn_prop(resource->info->root.txn, propname,
|
|
|
6712ef |
+ value, subpool);
|
|
|
6712ef |
}
|
|
|
6712ef |
else
|
|
|
6712ef |
{
|
|
|
6712ef |
@@ -251,8 +267,8 @@
|
|
|
6712ef |
}
|
|
|
6712ef |
else if (resource->info->restype == DAV_SVN_RESTYPE_TXN_COLLECTION)
|
|
|
6712ef |
{
|
|
|
6712ef |
- serr = svn_repos_fs_change_txn_prop(resource->info->root.txn,
|
|
|
6712ef |
- propname, value, subpool);
|
|
|
6712ef |
+ serr = change_txn_prop(resource->info->root.txn, propname,
|
|
|
6712ef |
+ value, subpool);
|
|
|
6712ef |
}
|
|
|
6712ef |
else
|
|
|
6712ef |
{
|
|
|
6712ef |
@@ -561,8 +577,8 @@
|
|
|
6712ef |
/* Working Baseline or Working (Version) Resource */
|
|
|
6712ef |
if (db->resource->baselined)
|
|
|
6712ef |
if (db->resource->working)
|
|
|
6712ef |
- serr = svn_repos_fs_change_txn_prop(db->resource->info->root.txn,
|
|
|
6712ef |
- propname, NULL, subpool);
|
|
|
6712ef |
+ serr = change_txn_prop(db->resource->info->root.txn, propname,
|
|
|
6712ef |
+ NULL, subpool);
|
|
|
6712ef |
else
|
|
|
6712ef |
/* ### VIOLATING deltaV: you can't proppatch a baseline, it's
|
|
|
6712ef |
not a working resource! But this is how we currently
|