0003-libteec-fix-clang-build-errors.patch 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. From d6f79741803dd31b34960dbc59999eb2482df9c1 Mon Sep 17 00:00:00 2001
  2. From: Victor Chong <victor.chong@linaro.org>
  3. Date: Fri, 22 Mar 2019 06:37:13 +0000
  4. Subject: [PATCH] libteec: fix clang build errors
  5. external/optee_client/libteec/src/tee_client_api.c:488:11: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
  6. uint8_t data[sizeof(struct tee_ioctl_open_session_arg) + p_sz];
  7. ^
  8. external/optee_client/libteec/src/tee_client_api.c:566:11: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
  9. uint8_t data[sizeof(struct tee_ioctl_invoke_arg) + p_sz];
  10. ^
  11. Fixes: 9dbc61b3 ("libteec: fix build warnings")
  12. Fixes: https://github.com/OP-TEE/optee_client/issues/152
  13. Signed-off-by: Victor Chong <victor.chong@linaro.org>
  14. Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
  15. Upstream: https://github.com/OP-TEE/optee_client/commit/16c8f548786c70df04d3a1e61bf89abce9b92389
  16. [fix conflict]
  17. Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
  18. ---
  19. libteec/src/tee_client_api.c | 14 ++++++++------
  20. 1 file changed, 8 insertions(+), 6 deletions(-)
  21. diff --git a/libteec/src/tee_client_api.c b/libteec/src/tee_client_api.c
  22. index cf0b1f7..4d7b134 100644
  23. --- a/libteec/src/tee_client_api.c
  24. +++ b/libteec/src/tee_client_api.c
  25. @@ -481,11 +481,12 @@ TEEC_Result TEEC_OpenSession(TEEC_Context *ctx, TEEC_Session *session,
  26. uint32_t connection_method, const void *connection_data,
  27. TEEC_Operation *operation, uint32_t *ret_origin)
  28. {
  29. - size_t p_sz = TEEC_CONFIG_PAYLOAD_REF_COUNT *
  30. - sizeof(struct tee_ioctl_param);
  31. + const size_t arg_size = sizeof(struct tee_ioctl_open_session_arg) +
  32. + TEEC_CONFIG_PAYLOAD_REF_COUNT *
  33. + sizeof(struct tee_ioctl_param);
  34. union {
  35. struct tee_ioctl_open_session_arg arg;
  36. - uint8_t data[sizeof(struct tee_ioctl_open_session_arg) + p_sz];
  37. + uint8_t data[arg_size];
  38. } buf;
  39. struct tee_ioctl_buf_data buf_data;
  40. struct tee_ioctl_open_session_arg *arg;
  41. @@ -559,11 +560,12 @@ void TEEC_CloseSession(TEEC_Session *session)
  42. TEEC_Result TEEC_InvokeCommand(TEEC_Session *session, uint32_t cmd_id,
  43. TEEC_Operation *operation, uint32_t *error_origin)
  44. {
  45. - size_t p_sz = TEEC_CONFIG_PAYLOAD_REF_COUNT *
  46. - sizeof(struct tee_ioctl_param);
  47. + const size_t arg_size = sizeof(struct tee_ioctl_invoke_arg) +
  48. + TEEC_CONFIG_PAYLOAD_REF_COUNT *
  49. + sizeof(struct tee_ioctl_param);
  50. union {
  51. struct tee_ioctl_invoke_arg arg;
  52. - uint8_t data[sizeof(struct tee_ioctl_invoke_arg) + p_sz];
  53. + uint8_t data[arg_size];
  54. } buf;
  55. struct tee_ioctl_buf_data buf_data;
  56. struct tee_ioctl_invoke_arg *arg;
  57. --
  58. 2.17.1