diff options
Diffstat (limited to 'build-aux/mbim-codegen/Message.py')
-rw-r--r-- | build-aux/mbim-codegen/Message.py | 9 |
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 += ( |