Return proper space-padded values where the PKCS #11 spec requires.
BUG=chromium:210090
TEST=unit, manual
Change-Id: Ia34dd35e43296fd875f1cbcd5bf04f3b3eb8d7c1
Reviewed-on: https://chromium-review.googlesource.com/184454
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
Tested-by: Darren Krahn <dkrahn@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Queue: Darren Krahn <dkrahn@chromium.org>
diff --git a/chaps_test.cc b/chaps_test.cc
index 6fa3744..e7247f6 100644
--- a/chaps_test.cc
+++ b/chaps_test.cc
@@ -231,9 +231,8 @@
EXPECT_EQ(CKR_OK, C_GetSlotInfo(1, &info));
uint8_t spaces[64];
memset(spaces, ' ', arraysize(spaces));
- // TODO(dkrahn) Enable these checks. See crosbug.com/27295.
- //EXPECT_EQ(0, memcmp(spaces, info.slotDescription, 64));
- //EXPECT_EQ(0, memcmp(spaces, info.manufacturerID, 32));
+ EXPECT_EQ(0, memcmp(spaces, info.slotDescription, 64));
+ EXPECT_EQ(0, memcmp(spaces, info.manufacturerID, 32));
EXPECT_EQ(1, info.flags);
}
diff --git a/chaps_utility.h b/chaps_utility.h
index 62f0888..d29a44b 100644
--- a/chaps_utility.h
+++ b/chaps_utility.h
@@ -27,9 +27,9 @@
size_t copy_size = source.length();
if (copy_size > buffer_size)
copy_size = buffer_size;
- // TODO(dkrahn) Change the '\0' back to ' '. See crosbug.com/27295.
- memset(buffer, '\0', buffer_size);
- memcpy(buffer, source.data(), copy_size);
+ memset(buffer, ' ', buffer_size);
+ if (copy_size > 0)
+ memcpy(buffer, source.data(), copy_size);
}
inline void CopyVectorToCharBuffer(const std::vector<uint8_t>& source,
@@ -38,9 +38,9 @@
size_t copy_size = source.size();
if (copy_size > buffer_size)
copy_size = buffer_size;
- // TODO(dkrahn) Change the '\0' back to ' '. See crosbug.com/27295.
- memset(buffer, '\0', buffer_size);
- memcpy(buffer, &source.front(), copy_size);
+ memset(buffer, ' ', buffer_size);
+ if (copy_size > 0)
+ memcpy(buffer, &source.front(), copy_size);
}
// RVToString stringifies a PKCS #11 return value. E.g. CKR_OK --> "CKR_OK".
diff --git a/slot_manager_test.cc b/slot_manager_test.cc
index 419edaf..8512cbf 100644
--- a/slot_manager_test.cc
+++ b/slot_manager_test.cc
@@ -255,7 +255,7 @@
slot_manager_->GetTokenInfo(ic_, 0, &token_info);
EXPECT_EQ(NULL, memchr(&token_info, 0xEE, sizeof(token_info)));
string expected_label(kTokenLabel);
- expected_label.resize(arraysize(token_info.label), 0);
+ expected_label.resize(arraysize(token_info.label), ' ');
string actual_label(reinterpret_cast<char*>(token_info.label),
arraysize(token_info.label));
EXPECT_EQ(expected_label, actual_label);