summaryrefslogtreecommitdiff
path: root/python/transform.py
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2019-07-23 15:40:54 -0400
committerBrian Potchik <brian@vector35.com>2019-07-23 15:40:54 -0400
commitb9d1130f3c5eb018b50e3b3aeb5993e75001df29 (patch)
treef7d60a6855b65c0912d5a983c8dffecb1aa4c942 /python/transform.py
parent801d92feb44f5bafca08d9a019404a78f12e937a (diff)
Fix DataBuffer UAF in Transform Python API.
Diffstat (limited to 'python/transform.py')
-rw-r--r--python/transform.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/python/transform.py b/python/transform.py
index 95aeac87..6d72f3cc 100644
--- a/python/transform.py
+++ b/python/transform.py
@@ -246,10 +246,11 @@ class Transform(with_metaclass(_TransformMetaClass, object)):
output_buf = databuffer.DataBuffer()
keys = list(params.keys())
param_buf = (core.BNTransformParameter * len(keys))()
+ data = []
for i in range(0, len(keys)):
- data = databuffer.DataBuffer(params[keys[i]])
+ data.append(databuffer.DataBuffer(params[keys[i]]))
param_buf[i].name = keys[i]
- param_buf[i].value = data.handle
+ param_buf[i].value = data[i].handle
if not core.BNDecode(self.handle, input_buf.handle, output_buf.handle, param_buf, len(keys)):
return None
return str(output_buf)
@@ -261,10 +262,11 @@ class Transform(with_metaclass(_TransformMetaClass, object)):
output_buf = databuffer.DataBuffer()
keys = list(params.keys())
param_buf = (core.BNTransformParameter * len(keys))()
+ data = []
for i in range(0, len(keys)):
- data = databuffer.DataBuffer(params[keys[i]])
+ data.append(databuffer.DataBuffer(params[keys[i]]))
param_buf[i].name = keys[i]
- param_buf[i].value = data.handle
+ param_buf[i].value = data[i].handle
if not core.BNEncode(self.handle, input_buf.handle, output_buf.handle, param_buf, len(keys)):
return None
return str(output_buf)