summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-06-23 21:23:17 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-06-24 19:22:32 +0200
commit1b8fe7e167ac3e740fd0394d68dcc281fe1b0c2b (patch)
tree44e8cac5a6471260fd231468aefc6472c71fc2e0
parent581e918b5104bf80bfe399eeaa73e98f505011a3 (diff)
downloadlibmbim-1b8fe7e167ac3e740fd0394d68dcc281fe1b0c2b.tar.gz
libmbim-glib: when appending strings, ensure padding is also added when needed
-rw-r--r--libmbim-glib/mbim-message.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libmbim-glib/mbim-message.c b/libmbim-glib/mbim-message.c
index 97f15d4..6f2c604 100644
--- a/libmbim-glib/mbim-message.c
+++ b/libmbim-glib/mbim-message.c
@@ -662,8 +662,15 @@ _mbim_struct_builder_append_string (MbimStructBuilder *builder,
g_byte_array_append (builder->fixed_buffer, (guint8 *)&length, sizeof (length));
/* And finally, the string itself to the variable buffer */
- if (utf16le_bytes)
+ if (utf16le_bytes) {
g_byte_array_append (builder->variable_buffer, (const guint8 *)utf16le, (guint)utf16le_bytes);
+ while (utf16le_bytes % 4 != 0) {
+ const guint8 padding = 0;
+
+ g_byte_array_append (builder->variable_buffer, &padding, 1);
+ utf16le_bytes++;
+ }
+ }
g_free (utf16le);
}