*/
/**
- * Copyright (c) 2011-2017 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2011-2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#define TEE_DATA_FLAG_SHARE_READ 0x00000010
#define TEE_DATA_FLAG_SHARE_WRITE 0x00000020
#define TEE_DATA_FLAG_CREATE 0x00000200
-#define TEE_DATA_FLAG_EXCLUSIVE 0x00000400
+#define TEE_DATA_FLAG_OVERWRITE 0x00000400
// Usage Constants
#define TEE_USAGE_EXTRACTABLE 0x00000001
/**
- * Copyright (c) 2015-2017 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2015-2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
handleFlags &= ~TEE_HANDLE_FLAG_PERSISTENT;
handleFlags &= ~TEE_HANDLE_FLAG_INITIALIZED;
+ // TODO: TEE_DATA_FLAG_OVERWRITE is already handled at this point.
if ((handleFlags & TEE_DATA_FLAG_ACCESS_WRITE_META)
- || (handleFlags & TEE_DATA_FLAG_EXCLUSIVE) || (0 == handleFlags)) {
+ || !(handleFlags & TEE_DATA_FLAG_OVERWRITE) || (0 == handleFlags)) {
share_info->usr_info->x_user += (b_open ? 1 : -1);
goto out;
}
rc = exist_po(po);
// already exist
if (TEE_SUCCESS == rc) {
- if (flags & TEE_DATA_FLAG_EXCLUSIVE) {
+ if (!(flags & TEE_DATA_FLAG_OVERWRITE)) {
MSG("Persistent object already exist.");
FREE_PO(po);
return TEE_ERROR_ACCESS_CONFLICT;
FREE_PO(po);
return TEE_SUCCESS;
}
- rc = open_po(po);
- } else {
- rc = create_po(po, tr_obj, initialData, initialDataLen);
}
+ rc = create_po(po, tr_obj, initialData, initialDataLen);
+
if (rc) {
FREE_PO(po);
return rc;
}
persistent_object* po;
po = (persistent_object*)object;
- if (!(po->attr.info.handleFlags & TEE_DATA_FLAG_EXCLUSIVE) &&
+ // TODO: TEE_DATA_FLAG_OVERWRITE should have no meaning in this context
+ if ((po->attr.info.handleFlags & TEE_DATA_FLAG_OVERWRITE) &&
!(po->attr.info.handleFlags & TEE_DATA_FLAG_ACCESS_WRITE_META)) {
TZ_ERROR("operation error line = %d,%s\n", __LINE__, __func__);
TEE_Panic(0);