mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-21 02:08:12 +03:00
LibCore: Switch to AK::secure_zero instead of platform specific APIs
This commit is contained in:
parent
43f4292ca0
commit
b8cad2c9b9
Notes:
sideshowbarker
2024-07-18 04:04:26 +09:00
Author: https://github.com/bgianfo Commit: https://github.com/SerenityOS/serenity/commit/b8cad2c9b99 Pull-request: https://github.com/SerenityOS/serenity/pull/10008 Reviewed-by: https://github.com/Dexesttp ✅
@ -5,12 +5,8 @@
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <AK/Platform.h>
|
||||
#include <AK/Memory.h>
|
||||
#include <LibCore/SecretString.h>
|
||||
#if defined(AK_OS_MACOS)
|
||||
# define __STDC_WANT_LIB_EXT1__ 1
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
namespace Core {
|
||||
|
||||
@ -19,12 +15,9 @@ SecretString SecretString::take_ownership(char*& cstring, size_t length)
|
||||
auto buffer = ByteBuffer::copy(cstring, length);
|
||||
VERIFY(buffer.has_value());
|
||||
|
||||
#if defined(AK_OS_MACOS)
|
||||
memset_s(cstring, length, 0, length);
|
||||
#else
|
||||
explicit_bzero(cstring, length);
|
||||
#endif
|
||||
secure_zero(cstring, length);
|
||||
free(cstring);
|
||||
cstring = nullptr;
|
||||
|
||||
return SecretString(buffer.release_value());
|
||||
}
|
||||
@ -41,14 +34,10 @@ SecretString::SecretString(ByteBuffer&& buffer)
|
||||
|
||||
SecretString::~SecretString()
|
||||
{
|
||||
// Note: We use explicit_bzero to avoid the zeroing from being optimized out by the compiler,
|
||||
// Note: We use secure_zero to avoid the zeroing from being optimized out by the compiler,
|
||||
// which is possible if memset was to be used here.
|
||||
if (!m_secure_buffer.is_empty()) {
|
||||
#if defined(AK_OS_MACOS)
|
||||
memset_s(m_secure_buffer.data(), m_secure_buffer.size(), 0, m_secure_buffer.size());
|
||||
#else
|
||||
explicit_bzero(m_secure_buffer.data(), m_secure_buffer.capacity());
|
||||
#endif
|
||||
secure_zero(m_secure_buffer.data(), m_secure_buffer.capacity());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user