Return attr size in TEE_GetObjectBufferAttribute() when buffer is NULL 31/297231/3
authorDongsun Lee <ds73.lee@samsung.com>
Mon, 14 Aug 2023 09:31:26 +0000 (18:31 +0900)
committerDongsun Lee <ds73.lee@samsung.com>
Mon, 14 Aug 2023 09:52:39 +0000 (18:52 +0900)
Change-Id: Ifa3b3a305acafa43c5f21ba94f62a1e05ac54dce

ssflib/src/ssf_storage.cpp

index 1d5de0744a32323f9536cc3bf8fe3cb75f2b75f9..546a39fd2616c5e93559741bd747d8384b2a085f 100644 (file)
@@ -1370,10 +1370,11 @@ TEE_Result TEE_GetObjectBufferAttribute(TEE_ObjectHandle object,
        //len = ((obj->attr.attr_array[n].content.ref.length & 0x7FFFFFFF) + 7) >> 3 ;
        len = obj->attr.attr_array[n].content.ref.length;
 
-       // out buffer is too small
-       if (len > *size) {
+       if (buffer == NULL || len > *size) {
+               *size = len;
                return TEE_ERROR_SHORT_BUFFER;
        }
+
        memcpy(buffer, obj->attr.attr_array[n].content.ref.buffer, len);
        *size = len;
        return TEE_SUCCESS;