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