From: Konrad Lipinski Date: Tue, 24 Sep 2019 13:11:32 +0000 (+0200) Subject: ckmc_alias_new: replace str* calls with memcpy X-Git-Tag: accepted/tizen/unified/20191106.124739~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b029d90a0aa25426d210f95deee09287a2bb0ca;p=platform%2Fcore%2Fsecurity%2Fkey-manager.git ckmc_alias_new: replace str* calls with memcpy Change-Id: I7b8d340f7ce2ce1f5867065cf65650733ef1c44a --- diff --git a/src/manager/client-capi/ckmc-type.cpp b/src/manager/client-capi/ckmc-type.cpp index 3b03f12..9409025 100644 --- a/src/manager/client-capi/ckmc-type.cpp +++ b/src/manager/client-capi/ckmc-type.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 - 2019 Samsung Electronics Co., Ltd All Rights Reserved + * Copyright (c) 2000-2019 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. @@ -86,15 +86,19 @@ int ckmc_alias_new(const char *owner_id, const char *alias, char **full_alias) if (owner_id == NULL || alias == NULL || full_alias == NULL) return CKMC_ERROR_INVALID_PARAMETER; - size_t len = strlen(owner_id) + strlen(alias) + strlen(ckmc_owner_id_separator); + const size_t owner_id_len = strlen(owner_id); + const size_t separator_len = strlen(ckmc_owner_id_separator); + const size_t alias_len = strlen(alias); + const size_t len = owner_id_len + separator_len + alias_len; char *_full_alias = static_cast(malloc(len + 1)); if (_full_alias == NULL) return CKMC_ERROR_OUT_OF_MEMORY; - strncpy(_full_alias, owner_id, len + 1); - strncat(_full_alias, ckmc_owner_id_separator, len - strlen(_full_alias)); - strncat(_full_alias, alias, len - strlen(_full_alias)); + memcpy(_full_alias, owner_id, owner_id_len); + memcpy(_full_alias + owner_id_len, ckmc_owner_id_separator, separator_len); + memcpy(_full_alias + owner_id_len + separator_len, alias, alias_len); + _full_alias[len] = '\0'; *full_alias = _full_alias;