Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c46cbcbb authored by Chris Forbes's avatar Chris Forbes
Browse files

libutils: Make LightFlattenablePod safe for unaligned ptr

`buffer` may not be correctly aligned here. Assignment assumes correct
alignment and so then blows up on arm32.

Bug: b/37920153
Test: build, boot device
Change-Id: I23ef7c7f1d1511fd912b9485bba955db59e33832
parent d5398bf9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -189,11 +189,11 @@ public:
    }
    inline status_t flatten(void* buffer, size_t size) const {
        if (size < sizeof(T)) return NO_MEMORY;
        *reinterpret_cast<T*>(buffer) = *static_cast<T const*>(this);
        memcpy(buffer, static_cast<T const*>(this), sizeof(T));
        return NO_ERROR;
    }
    inline status_t unflatten(void const* buffer, size_t) {
        *static_cast<T*>(this) = *reinterpret_cast<T const*>(buffer);
        memcpy(static_cast<T*>(this), buffer, sizeof(T));
        return NO_ERROR;
    }
};