tee-supplicant: Report error on short buffer when loading TA 05/154105/1
authorYves Lefloch <YvesMarie_Lefloch@sigmadesigns.com>
Wed, 22 Mar 2017 16:14:07 +0000 (17:14 +0100)
committerr.tyminski <r.tyminski@partner.samsung.com>
Thu, 5 Oct 2017 14:32:11 +0000 (16:32 +0200)
Change-Id: Ie1a2a514e302d387d063f5a03cabee944fb4765a
Signed-off-by: Yves Lefloch <YvesMarie_Lefloch@sigmadesigns.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Rafal Tyminski <r.tyminski@partner.samsung.com>
tee-supplicant/src/tee_supplicant.c

index 9258c47c28e459be25893ad9d0855f3251fb0648..dc710dfe47390b255a26fb43b72e96d2d7b7ce8d 100644 (file)
@@ -341,6 +341,14 @@ static uint32_t load_ta(size_t num_params, struct tee_ioctl_param *params)
        }
 
        params[1].u.memref.size = size;
+
+       /*
+        * If a buffer wasn't provided, just tell which size it should be.
+        * If it was provided but isn't big enough, report an error.
+        */
+       if (shm_ta.buffer && size > shm_ta.size)
+               return TEEC_ERROR_SHORT_BUFFER;
+
        return TEEC_SUCCESS;
 }