[gbinder] Fixed FF padding

This commit is contained in:
Slava Monich
2024-03-02 01:59:43 +02:00
parent 6508a73dcd
commit 03f214eb24

View File

@@ -1203,13 +1203,18 @@ gbinder_writer_append_byte_array(
GASSERT(len >= 0);
if (G_LIKELY(data)) {
GByteArray* buf = data->bytes;
void* ptr;
gsize padded_len;
guint8* ptr;
if (!byte_array) {
len = 0;
}
gint32 padded_len = G_ALIGN4(len);
/*
* Android aligns byte array reads and writes to 4 bytes and
* pads with 0xFF.
*/
padded_len = G_ALIGN4(len);
g_byte_array_set_size(buf, buf->len + sizeof(len) + padded_len);
ptr = buf->data + (buf->len - sizeof(len) - padded_len);
@@ -1219,7 +1224,7 @@ gbinder_writer_append_byte_array(
memcpy(ptr, byte_array, len);
/* FF padding */
if (padded_len > len) {
memset(ptr, 0xFF, padded_len - len);
memset(ptr + len, 0xff, padded_len - len);
}
} else {
*((gint32*)ptr) = -1;