1 /* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "idm_common.h" 17 18 #include "adaptor_log.h" 19 #include "adaptor_memory.h" 20 DestroyUserInfoNode(void * userInfo)21void DestroyUserInfoNode(void *userInfo) 22 { 23 if (userInfo == NULL) { 24 LOG_ERROR("userInfo is null"); 25 return; 26 } 27 UserInfo *node = (UserInfo*)userInfo; 28 DestroyLinkedList(node->credentialInfoList); 29 DestroyLinkedList(node->enrolledInfoList); 30 Free(node); 31 } 32 DestroyCredentialNode(void * credential)33void DestroyCredentialNode(void *credential) 34 { 35 if (credential == NULL) { 36 LOG_ERROR("credential is null"); 37 return; 38 } 39 Free(credential); 40 } 41 DestroyEnrolledNode(void * enrolled)42void DestroyEnrolledNode(void *enrolled) 43 { 44 if (enrolled == NULL) { 45 LOG_ERROR("enrolled is null"); 46 return; 47 } 48 Free(enrolled); 49 } 50 InitUserInfoNode(void)51UserInfo *InitUserInfoNode(void) 52 { 53 UserInfo *userInfo = Malloc(sizeof(UserInfo)); 54 if (userInfo == NULL) { 55 LOG_ERROR("userInfo malloc failed"); 56 return NULL; 57 } 58 59 userInfo->credentialInfoList = CreateLinkedList(DestroyCredentialNode); 60 if (userInfo->credentialInfoList == NULL) { 61 LOG_ERROR("create credentialInfoList failed"); 62 Free(userInfo); 63 return NULL; 64 } 65 66 userInfo->enrolledInfoList = CreateLinkedList(DestroyEnrolledNode); 67 if (userInfo->enrolledInfoList == NULL) { 68 LOG_ERROR("create enrolledInfoList failed"); 69 DestroyLinkedList(userInfo->enrolledInfoList); 70 Free(userInfo); 71 return NULL; 72 } 73 return userInfo; 74 }