summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-06-23 21:30:41 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-06-24 19:22:33 +0200
commitcb334b7e064432958272ba8196c881f58e8c2e67 (patch)
treea5276019df908e9f5ed99d462b507d127c6f0bf0
parent1754a32e0b0f6f663c8e5b5527b360417679ded0 (diff)
downloadlibmbim-cb334b7e064432958272ba8196c881f58e8c2e67.tar.gz
libmbim-glib: when appending byte-arrays, ensure padding is also added when needed
-rw-r--r--libmbim-glib/mbim-message.c16
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