summaryrefslogtreecommitdiff
path: root/src/manager/service/key-provider.cpp
diff options
context:
space:
mode:
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>2017-11-10 13:53:17 +0100
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>2017-11-22 08:54:17 +0000
commit3874f0f942a1a22ce0ceb8e1799133f085536c27 (patch)
tree84d4ae4b827525da57324ad0fa9fe6bccf6e8cad /src/manager/service/key-provider.cpp
parenteacd8b321de92d38288294d2584ef98d517caead (diff)
downloadkey-manager-3874f0f942a1a22ce0ceb8e1799133f085536c27.tar.gz
key-manager-3874f0f942a1a22ce0ceb8e1799133f085536c27.tar.bz2
key-manager-3874f0f942a1a22ce0ceb8e1799133f085536c27.zip
Fix SVACE defects
- Initialize required members in default Row ctor - Remove unused Row objects - Refactor string memcpy'ing so that SVACE stops complaining - Fix memory leak in DescriptorSet Change-Id: I8a22a3c5388b0c17b6f44ebaf89d32e9065526dd
Diffstat (limited to 'src/manager/service/key-provider.cpp')
-rw-r--r--src/manager/service/key-provider.cpp30
1 files changed, 7 insertions, 23 deletions
diff --git a/src/manager/service/key-provider.cpp b/src/manager/service/key-provider.cpp
index 4ca4f038..60cce238 100644
--- a/src/manager/service/key-provider.cpp
+++ b/src/manager/service/key-provider.cpp
@@ -602,29 +602,13 @@ int KeyProvider::decryptAes256Gcm(const unsigned char *ciphertext,
char *KeyProvider::concat_password_user(const char *user, const char *password)
{
- char *concat_user_pass = NULL;
- char *resized_user = NULL;
- int concat_user_pass_len = 0;
-
- if (strlen(user) > MAX_LABEL_SIZE - 1) {
- resized_user = new char[MAX_LABEL_SIZE];
- memcpy(resized_user, user, MAX_LABEL_SIZE - 1);
- resized_user[MAX_LABEL_SIZE - 1] = '\0';
- } else {
- resized_user = new char[strlen(user) + 1];
- memcpy(resized_user, user, strlen(user));
- resized_user[strlen(user)] = '\0';
- }
-
- concat_user_pass_len = strlen(resized_user) + strlen(password) + 1;
- concat_user_pass = new char[concat_user_pass_len];
+ std::string result(password);
+ result += user;
- memset(concat_user_pass, '\0', concat_user_pass_len);
- memcpy(concat_user_pass, password, strlen(password));
- memcpy(&(concat_user_pass[strlen(password)]), resized_user,
- strlen(resized_user));
- concat_user_pass[strlen(resized_user) + strlen(password)] = '\0';
+ if (strlen(user) > MAX_LABEL_SIZE - 1)
+ result.resize(strlen(password) + MAX_LABEL_SIZE - 1);
- delete[] resized_user;
- return concat_user_pass;
+ char *ret = new char[result.size() + 1];
+ memcpy(ret, result.c_str(), result.size() + 1);
+ return ret;
}