diff options
author | Mike Buland <eichlan@xagasoft.com> | 2023-07-01 11:06:22 -0700 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2023-07-01 11:06:22 -0700 |
commit | fd7583acc0adcce2fa63d21755091ddb3077aa14 (patch) | |
tree | d2c7b019c4ff994b9347141a54a83cc8bffee667 /src | |
parent | a655bb28194bcea9efc2550d9c41c422c05ce762 (diff) | |
download | libbu++-fd7583acc0adcce2fa63d21755091ddb3077aa14.tar.gz libbu++-fd7583acc0adcce2fa63d21755091ddb3077aa14.tar.bz2 libbu++-fd7583acc0adcce2fa63d21755091ddb3077aa14.tar.xz libbu++-fd7583acc0adcce2fa63d21755091ddb3077aa14.zip |
Fixed potential memory corruption/race condition.
Diffstat (limited to 'src')
-rw-r--r-- | src/tests/utf.cpp | 1 | ||||
-rw-r--r-- | src/unstable/utfstring.cpp | 8 | ||||
-rw-r--r-- | src/unstable/utfstring.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/tests/utf.cpp b/src/tests/utf.cpp index 40d4194..ef7297d 100644 --- a/src/tests/utf.cpp +++ b/src/tests/utf.cpp | |||
@@ -7,6 +7,7 @@ using namespace Bu; | |||
7 | 7 | ||
8 | int main() | 8 | int main() |
9 | { | 9 | { |
10 | sio << "Code: " << Bu::__calcHashCode( Bu::UtfString() ) << sio.nl; | ||
10 | sio << "Code: " << Bu::__calcHashCode( Bu::UtfString("Hello there") ) | 11 | sio << "Code: " << Bu::__calcHashCode( Bu::UtfString("Hello there") ) |
11 | << sio.nl; | 12 | << sio.nl; |
12 | 13 | ||
diff --git a/src/unstable/utfstring.cpp b/src/unstable/utfstring.cpp index 9b712c9..be03c6e 100644 --- a/src/unstable/utfstring.cpp +++ b/src/unstable/utfstring.cpp | |||
@@ -47,6 +47,14 @@ Bu::UtfString::UtfString( const char *sInput, Encoding eEnc ) | |||
47 | set( Bu::Blob(sInput), eEnc ); | 47 | set( Bu::Blob(sInput), eEnc ); |
48 | } | 48 | } |
49 | 49 | ||
50 | Bu::UtfString::UtfString( const UtfString &rSrc ) : | ||
51 | aData( rSrc.aData.clone() ), | ||
52 | iRawLen( rSrc.iRawLen ), | ||
53 | iCharLen( rSrc.iCharLen ) | ||
54 | { | ||
55 | |||
56 | } | ||
57 | |||
50 | Bu::UtfString::~UtfString() | 58 | Bu::UtfString::~UtfString() |
51 | { | 59 | { |
52 | } | 60 | } |
diff --git a/src/unstable/utfstring.h b/src/unstable/utfstring.h index 5355f3e..e36c2dd 100644 --- a/src/unstable/utfstring.h +++ b/src/unstable/utfstring.h | |||
@@ -74,6 +74,7 @@ namespace Bu | |||
74 | UtfString( const Bu::String &sInput, Encoding eEnc=Utf8 ); | 74 | UtfString( const Bu::String &sInput, Encoding eEnc=Utf8 ); |
75 | UtfString( const Bu::Blob &sInput, Encoding eEnc=Utf8 ); | 75 | UtfString( const Bu::Blob &sInput, Encoding eEnc=Utf8 ); |
76 | UtfString( const char *sInput, Encoding eEnc=Utf8 ); | 76 | UtfString( const char *sInput, Encoding eEnc=Utf8 ); |
77 | UtfString( const UtfString &rSrc ); | ||
77 | virtual ~UtfString(); | 78 | virtual ~UtfString(); |
78 | 79 | ||
79 | class iterator | 80 | class iterator |