diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-06-23 21:30:41 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-06-24 19:22:33 +0200 |
commit | cb334b7e064432958272ba8196c881f58e8c2e67 (patch) | |
tree | a5276019df908e9f5ed99d462b507d127c6f0bf0 | |
parent | 1754a32e0b0f6f663c8e5b5527b360417679ded0 (diff) | |
download | libmbim-cb334b7e064432958272ba8196c881f58e8c2e67.tar.gz |
libmbim-glib: when appending byte-arrays, ensure padding is also added when needed
-rw-r--r-- | libmbim-glib/mbim-message.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libmbim-glib/mbim-message.c b/libmbim-glib/mbim-message.c index 6f2c604..deb2c52 100644 --- a/libmbim-glib/mbim-message.c +++ b/libmbim-glib/mbim-message.c @@ -501,6 +501,12 @@ _mbim_struct_builder_append_byte_array (MbimStructBuilder *builder, */ if (!with_offset && !with_length) { g_byte_array_append (builder->fixed_buffer, buffer, buffer_len); + while (buffer_len % 4 != 0) { + const guint8 padding = 0; + + g_byte_array_append (builder->fixed_buffer, &padding, 1); + buffer_len++; + } return; } @@ -541,8 +547,16 @@ _mbim_struct_builder_append_byte_array (MbimStructBuilder *builder, } /* And finally, the bytearray itself to the variable buffer */ - if (buffer_len) + if (buffer_len) { g_byte_array_append (builder->variable_buffer, (const guint8 *)buffer, (guint)buffer_len); + + while (buffer_len % 4 != 0) { + const guint8 padding = 0; + + g_byte_array_append (builder->variable_buffer, &padding, 1); + buffer_len++; + } + } } void |