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

Commit 705868c0 authored by Andreas Huber's avatar Andreas Huber
Browse files

Make it possible to pass empty opaque data as (NULL, 0) to ICrypto.

Change-Id: Ifee1744890b645e008c9aff3783625a7bfbcff27
related-to-bug: 6275919
parent e5becb51
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -61,7 +61,11 @@ struct BpCrypto : public BpInterface<ICrypto> {
        data.writeInterfaceToken(ICrypto::getInterfaceDescriptor());
        data.write(uuid, 16);
        data.writeInt32(opaqueSize);

        if (opaqueSize > 0) {
            data.write(opaqueData, opaqueSize);
        }

        remote()->transact(CREATE_PLUGIN, data, &reply);

        return reply.readInt32();
@@ -179,13 +183,19 @@ status_t BnCrypto::onTransact(
            data.read(uuid, sizeof(uuid));

            size_t opaqueSize = data.readInt32();
            void *opaqueData = malloc(opaqueSize);
            void *opaqueData = NULL;

            if (opaqueSize > 0) {
                opaqueData = malloc(opaqueSize);
                data.read(opaqueData, opaqueSize);
            }

            reply->writeInt32(createPlugin(uuid, opaqueData, opaqueSize));

            if (opaqueData != NULL) {
                free(opaqueData);
                opaqueData = NULL;
            }

            return OK;
        }