summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-10-30 16:20:04 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-10-30 16:20:04 +0100
commit28fd04993a64cfc60ac91893ef556fc59277807d (patch)
tree71402d814abe9838ab5f5eef25a5976210284bb2
parentdb4e96c1d675bbdb2eebb938f49adfb2f9a0eacf (diff)
fixup! qmi-codegen: validate TLV before really reading it
-rw-r--r--build-aux/qmi-codegen/VariableArray.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/build-aux/qmi-codegen/VariableArray.py b/build-aux/qmi-codegen/VariableArray.py
index 27e0bd6..f2b122c 100644
--- a/build-aux/qmi-codegen/VariableArray.py
+++ b/build-aux/qmi-codegen/VariableArray.py
@@ -214,11 +214,21 @@ class VariableArray(Variable):
f.write(string.Template(template).substitute(translations))
else:
translations['array_size_element_format'] = self.array_size_element.public_format
+ if self.array_size_element.public_format == 'guint8':
+ translations['array_size_element_size'] = '1'
+ elif self.array_size_element.public_format == 'guint16':
+ translations['array_size_element_size'] = '2'
+ elif self.array_size_element.public_format == 'guint32':
+ translations['array_size_element_size'] = '4'
+ else:
+ translations['array_size_element_size'] = '0'
template = (
'${lp} ${array_size_element_format} ${common_var_prefix}_n_items;\n'
'${lp} const guint8 *${common_var_prefix}_aux_buffer = &${buffer_name}[${variable_name}];\n'
'${lp} guint16 ${common_var_prefix}_aux_buffer_len = ${buffer_len} - ${variable_name};\n'
+ '\n'
+ '${lp} ${variable_name} += ${array_size_element_size};\n'
'\n')
f.write(string.Template(template).substitute(translations))