ckmc_alias_new: replace str* calls with memcpy 18/214618/2
authorKonrad Lipinski <k.lipinski2@samsung.com>
Tue, 24 Sep 2019 13:11:32 +0000 (15:11 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 25 Sep 2019 08:58:43 +0000 (08:58 +0000)
Change-Id: I7b8d340f7ce2ce1f5867065cf65650733ef1c44a

src/manager/client-capi/ckmc-type.cpp

index 3b03f12..9409025 100644 (file)
@@ -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<char *>(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;