fix: copy also size and offset for memref 39/155239/1
authorKrzysztof Dynowski <k.dynowski@samsung.com>
Thu, 12 Oct 2017 10:44:36 +0000 (12:44 +0200)
committerKrzysztof Dynowski <k.dynowski@samsung.com>
Thu, 12 Oct 2017 10:45:12 +0000 (12:45 +0200)
Change-Id: Iaedb63d738586fd1ea9a2159505d42b31307960b

src/tef_libteec.c

index b479743..833b9f2 100644 (file)
@@ -144,6 +144,8 @@ static TEEC_Operation *setOperation(TEF_SessionImpl *tefSession, TEEC_Operation
                uint8_t type = TEEC_PARAM_TYPE_GET(operation->paramTypes, i);
                if (type >= TEEC_MEMREF_WHOLE && type <= TEEC_MEMREF_PARTIAL_INOUT) {
                        op->params[i].memref.parent = (TEEC_SharedMemory*)operation->params[i].memref.parent->imp;
+                       op->params[i].memref.size = operation->params[i].memref.size;
+                       op->params[i].memref.offset = operation->params[i].memref.offset;
                } else {
                        op->params[i] = operation->params[i];
                }
@@ -161,6 +163,8 @@ static void getOperation(TEEC_Operation *operation)
        for (int i = 0; i < 4; ++i) {
                uint8_t type = TEEC_PARAM_TYPE_GET(operation->paramTypes, i);
                if (type >= TEEC_MEMREF_WHOLE && type <= TEEC_MEMREF_PARTIAL_INOUT) {
+                       operation->params[i].memref.size = op->params[i].memref.size;
+                       operation->params[i].memref.offset = op->params[i].memref.offset;
                } else {
                        operation->params[i] = op->params[i];
                }