summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2016-09-09 13:10:36 +0100
committerPaul "LeoNerd" Evans <paul@matrix.org>2016-09-09 13:10:36 +0100
commit033d43e4190bf765eb29bb6ba8ea7cbe6ad66cf4 (patch)
tree41c847edd34360c20f6a236223f42c3eba6f21e3
parentCollect up all the "instances" lists of individual AS protocol results into o... (diff)
downloadsynapse-033d43e4190bf765eb29bb6ba8ea7cbe6ad66cf4.tar.xz
Don't corrupt shared cache on subsequent protocol requests
-rw-r--r--synapse/handlers/appservice.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/synapse/handlers/appservice.py b/synapse/handlers/appservice.py
index 25447284eb..e68628bdfd 100644
--- a/synapse/handlers/appservice.py
+++ b/synapse/handlers/appservice.py
@@ -201,7 +201,9 @@ class ApplicationServicesHandler(object):
 
             # Merge the 'instances' lists of multiple results, but just take
             # the other fields from the first as they ought to be identical
+            # deep-clone the result so as not to corrupt the cached one
             combined = dict(infos[0])
+            combined["instances"] = list(combined["instances"])
 
             for info in infos[1:]:
                 combined["instances"].extend(info["instances"])