summaryrefslogtreecommitdiff
path: root/core/tee
diff options
context:
space:
mode:
Diffstat (limited to 'core/tee')
-rw-r--r--core/tee/se/aid.c7
-rw-r--r--core/tee/se/iso7816.c4
-rw-r--r--core/tee/se/manager.c1
-rw-r--r--core/tee/se/reader.c4
-rw-r--r--core/tee/se/reader/passthru_reader/reader.c16
-rw-r--r--core/tee/tee_fs_key_manager.c5
-rw-r--r--core/tee/tee_ree_fs.c8
-rw-r--r--core/tee/tee_rpmb_fs.c9
8 files changed, 30 insertions, 24 deletions
diff --git a/core/tee/se/aid.c b/core/tee/se/aid.c
index 5cb0cf11..690fbe84 100644
--- a/core/tee/se/aid.c
+++ b/core/tee/se/aid.c
@@ -27,7 +27,6 @@
#include <assert.h>
#include <kernel/panic.h>
-#include <kernel/tee_common_unpg.h>
#include <stdlib.h>
#include <string.h>
#include <tee_api_types.h>
@@ -44,7 +43,8 @@ TEE_Result tee_se_aid_create(const char *name, struct tee_se_aid **aid)
size_t aid_length = str_length / 2;
assert(aid);
- TEE_ASSERT(!*aid);
+ if (*aid)
+ panic();
if (str_length < MIN_AID_LENGTH || str_length > MAX_AID_LENGTH)
return TEE_ERROR_BAD_PARAMETERS;
@@ -86,7 +86,8 @@ int tee_se_aid_get_refcnt(struct tee_se_aid *aid)
void tee_se_aid_release(struct tee_se_aid *aid)
{
assert(aid);
- TEE_ASSERT(aid->refcnt > 0);
+ if (aid->refcnt <= 0)
+ panic();
aid->refcnt--;
if (!aid->refcnt)
free(aid);
diff --git a/core/tee/se/iso7816.c b/core/tee/se/iso7816.c
index 2bf19d6b..4fbd5ced 100644
--- a/core/tee/se/iso7816.c
+++ b/core/tee/se/iso7816.c
@@ -27,7 +27,6 @@
#include <assert.h>
#include <kernel/panic.h>
-#include <kernel/tee_common_unpg.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
@@ -95,7 +94,8 @@ static TEE_Result internal_select(struct tee_se_channel *c,
s = tee_se_channel_get_session(c);
channel_id = tee_se_channel_get_id(c);
- TEE_ASSERT(channel_id < MAX_LOGICAL_CHANNEL);
+ if (channel_id >= MAX_LOGICAL_CHANNEL)
+ panic();
cla_channel = iso7816_get_cla_channel(channel_id);
if (select_ops == FIRST_OR_ONLY_OCCURRENCE) {
diff --git a/core/tee/se/manager.c b/core/tee/se/manager.c
index 144ea026..30b35f61 100644
--- a/core/tee/se/manager.c
+++ b/core/tee/se/manager.c
@@ -27,7 +27,6 @@
#include <initcall.h>
#include <trace.h>
-#include <kernel/tee_common_unpg.h>
#include <kernel/mutex.h>
#include <tee/se/manager.h>
#include <tee/se/session.h>
diff --git a/core/tee/se/reader.c b/core/tee/se/reader.c
index 450571d9..5b383ef8 100644
--- a/core/tee/se/reader.c
+++ b/core/tee/se/reader.c
@@ -28,7 +28,6 @@
#include <assert.h>
#include <kernel/mutex.h>
#include <kernel/panic.h>
-#include <kernel/tee_common_unpg.h>
#include <string.h>
#include <tee_api_types.h>
#include <trace.h>
@@ -110,7 +109,8 @@ TEE_Result tee_se_reader_attach(struct tee_se_reader_proxy *proxy)
void tee_se_reader_detach(struct tee_se_reader_proxy *proxy)
{
- TEE_ASSERT(proxy->refcnt > 0);
+ if (proxy->refcnt <= 0)
+ panic();
mutex_lock(&proxy->mutex);
proxy->refcnt--;
diff --git a/core/tee/se/reader/passthru_reader/reader.c b/core/tee/se/reader/passthru_reader/reader.c
index 45fe190d..4cb13e15 100644
--- a/core/tee/se/reader/passthru_reader/reader.c
+++ b/core/tee/se/reader/passthru_reader/reader.c
@@ -26,15 +26,14 @@
*/
#include <io.h>
-#include <trace.h>
-#include <kernel/tee_common_unpg.h>
+#include <kernel/panic.h>
#include <mm/core_memprot.h>
+#include <stdio.h>
+#include <trace.h>
#include <tee/se/util.h>
#include <tee/se/reader/interface.h>
-#include <stdio.h>
-
#include "pcsc.h"
#include "reader.h"
@@ -113,7 +112,8 @@ static void pcsc_reader_get_atr(struct pcsc_reader *r)
static void pcsc_reader_connect(struct pcsc_reader *r)
{
- TEE_ASSERT(!r->connected);
+ if (r->connected)
+ panic();
pcsc_reader_write_reg(r, PCSC_REG_READER_CONTROL,
PCSC_READER_CTL_CONNECT |
@@ -125,7 +125,8 @@ static void pcsc_reader_connect(struct pcsc_reader *r)
static void pcsc_reader_disconnect(struct pcsc_reader *r)
{
- TEE_ASSERT(r->connected);
+ if (!r->connected)
+ panic();
pcsc_reader_write_reg(r, PCSC_REG_READER_CONTROL,
PCSC_READER_CTL_DISCONNECT |
@@ -139,7 +140,8 @@ static TEE_Result pcsc_reader_transmit(struct pcsc_reader *r, uint8_t *tx_buf,
{
uint32_t tx_buf_paddr = 0, rx_buf_paddr = 0;
- TEE_ASSERT(r->connected);
+ if (!r->connected)
+ panic();
tx_buf_paddr = virt_to_phys((void *)tx_buf);
rx_buf_paddr = virt_to_phys((void *)rx_buf);
diff --git a/core/tee/tee_fs_key_manager.c b/core/tee/tee_fs_key_manager.c
index 8fa22828..6636554c 100644
--- a/core/tee/tee_fs_key_manager.c
+++ b/core/tee/tee_fs_key_manager.c
@@ -40,8 +40,8 @@
#include <initcall.h>
#include <stdlib.h>
#include <string.h>
+#include <kernel/panic.h>
#include <kernel/tee_common_otp.h>
-#include <kernel/tee_common_unpg.h>
#include <kernel/tee_ta_manager.h>
#include <tee/tee_cryp_utl.h>
#include <tee/tee_cryp_provider.h>
@@ -286,8 +286,7 @@ size_t tee_fs_get_header_size(enum tee_fs_file_type type)
header_size = sizeof(struct block_header);
break;
default:
- EMSG("Unknown file type, type=%d", type);
- TEE_ASSERT(0);
+ panic();
}
return header_size;
diff --git a/core/tee/tee_ree_fs.c b/core/tee/tee_ree_fs.c
index b60d8ede..4ef07ffd 100644
--- a/core/tee/tee_ree_fs.c
+++ b/core/tee/tee_ree_fs.c
@@ -26,10 +26,10 @@
*/
#include <assert.h>
-#include <kernel/tee_common_unpg.h>
#include <kernel/thread.h>
#include <kernel/handle.h>
#include <kernel/mutex.h>
+#include <kernel/panic.h>
#include <mm/core_memprot.h>
#include <optee_msg.h>
#include <stdio.h>
@@ -744,7 +744,8 @@ static int read_and_decrypt_file(int fd,
if (res < 0)
return res;
- TEE_ASSERT(file_size >= header_size);
+ if (file_size < header_size)
+ panic();
ciphertext = malloc(file_size);
if (!ciphertext) {
@@ -1995,7 +1996,8 @@ static int ree_fs_rename(const char *old, const char *new)
}
/* finally, link the meta file, rename operation completed */
- TEE_ASSERT(meta_filename);
+ if (!meta_filename)
+ panic();
/*
* TODO: This will cause memory leakage at previous strdup()
diff --git a/core/tee/tee_rpmb_fs.c b/core/tee/tee_rpmb_fs.c
index c1b284f9..a7755777 100644
--- a/core/tee/tee_rpmb_fs.c
+++ b/core/tee/tee_rpmb_fs.c
@@ -29,6 +29,7 @@
#include <kernel/tee_common.h>
#include <kernel/handle.h>
#include <kernel/mutex.h>
+#include <kernel/panic.h>
#include <kernel/tee_common_otp.h>
#include <kernel/thread.h>
#include <optee_msg.h>
@@ -538,7 +539,9 @@ static TEE_Result decrypt(uint8_t *out, const struct rpmb_data_frame *frm,
{
uint8_t *tmp __maybe_unused;
- TEE_ASSERT(size + offset <= RPMB_DATA_SIZE);
+
+ if ((size + offset < size) || (size + offset > RPMB_DATA_SIZE))
+ panic();
if (!fek) {
/* Block is not encrypted (not a file data block) */
@@ -568,7 +571,6 @@ static TEE_Result decrypt(uint8_t *out, const struct rpmb_data_frame *frm,
memcpy(out, tmp + offset, size);
free(tmp);
} else {
- TEE_ASSERT(!offset);
decrypt_block(out, frm->data, blk_idx, fek);
}
#else
@@ -2180,7 +2182,8 @@ static int rpmb_fs_write(TEE_Result *errno, int fd, const void *buf,
if (res != TEE_SUCCESS)
goto out;
- TEE_ASSERT(!(fh->fat_entry.flags & FILE_IS_LAST_ENTRY));
+ if (fh->fat_entry.flags & FILE_IS_LAST_ENTRY)
+ panic();
end = fh->pos + size;
start_addr = fh->fat_entry.start_address + fh->pos;