summaryrefslogtreecommitdiff
path: root/build-aux/mbim-codegen/Message.py
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/mbim-codegen/Message.py')
-rw-r--r--build-aux/mbim-codegen/Message.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/build-aux/mbim-codegen/Message.py b/build-aux/mbim-codegen/Message.py
index cdca58f..19ec2a2 100644
--- a/build-aux/mbim-codegen/Message.py
+++ b/build-aux/mbim-codegen/Message.py
@@ -874,9 +874,10 @@ class Message:
' goto out;\n'
' offset += 4;\n')
elif field['format'] == 'ipv4-array':
+ count_early_outs += 1
inner_template += (
- ' if (out_${field} != NULL)\n'
- ' _${field} = _mbim_message_read_ipv4_array (message, _${array_size_field}, offset);\n'
+ ' if ((out_${field} != NULL) && !_mbim_message_read_ipv4_array (message, _${array_size_field}, offset, &_${field}, error))\n'
+ ' goto out;\n'
' offset += 4;\n')
elif field['format'] == 'ipv6':
inner_template += (
@@ -993,6 +994,7 @@ class Message:
field['format'] == 'string-array' or \
field['format'] == 'ipv4' or \
field['format'] == 'ref-ipv4' or \
+ field['format'] == 'ipv4-array' or \
field['format'] == 'uuid' or \
field['format'] == 'struct-array' or \
field['format'] == 'ref-struct-array' or \
@@ -1274,7 +1276,8 @@ class Message:
elif field['format'] == 'ipv4-array':
inner_template += (
' array_size = _${array_size_field};\n'
- ' tmp = _mbim_message_read_ipv4_array (message, _${array_size_field}, offset);\n'
+ ' if (!_mbim_message_read_ipv4_array (message, _${array_size_field}, offset, &tmp, &inner_error))\n'
+ ' goto out;\n'
' offset += 4;\n')
elif field['format'] == 'ipv6':
inner_template += (