Code

Ticket #16378: 16378.diff

File 16378.diff, 2.1 KB (added by aaugustin, 3 years ago)
Line 
1Index: django/core/cache/backends/locmem.py
2===================================================================
3--- django/core/cache/backends/locmem.py        (revision 16498)
4+++ django/core/cache/backends/locmem.py        (working copy)
5@@ -31,7 +31,8 @@
6             exp = self._expire_info.get(key)
7             if exp is None or exp <= time.time():
8                 try:
9-                    self._set(key, pickle.dumps(value), timeout)
10+                    pickled = pickle.dumps(value, pickle.HIGHEST_PROTOCOL)
11+                    self._set(key, pickled, timeout)
12                     return True
13                 except pickle.PickleError:
14                     pass
15@@ -49,7 +50,8 @@
16                 return default
17             elif exp > time.time():
18                 try:
19-                    return pickle.loads(self._cache[key])
20+                    pickled = self._cache[key]
21+                    return pickle.loads(pickled)
22                 except pickle.PickleError:
23                     return default
24         finally:
25@@ -78,7 +80,8 @@
26         self.validate_key(key)
27         self._lock.writer_enters()
28         try:
29-            self._set(key, pickle.dumps(value), timeout)
30+            pickled = pickle.dumps(value, pickle.HIGHEST_PROTOCOL)
31+            self._set(key, pickled, timeout)
32         except pickle.PickleError:
33             pass
34         finally:
35Index: django/core/cache/backends/db.py
36===================================================================
37--- django/core/cache/backends/db.py    (revision 16498)
38+++ django/core/cache/backends/db.py    (working copy)
39@@ -79,7 +79,8 @@
40         exp = datetime.fromtimestamp(time.time() + timeout).replace(microsecond=0)
41         if num > self._max_entries:
42             self._cull(db, cursor, now)
43-        encoded = base64.encodestring(pickle.dumps(value, 2)).strip()
44+        pickled = pickle.dumps(value, pickle.HIGHEST_PROTOCOL)
45+        encoded = base64.encodestring(pickled).strip()
46         cursor.execute("SELECT cache_key, expires FROM %s WHERE cache_key = %%s" % table, [key])
47         try:
48             result = cursor.fetchone()