From: Hwankyu Jhun Date: Wed, 16 Feb 2022 00:26:02 +0000 (+0900) Subject: Fix bundle_add_byte_array function X-Git-Tag: submit/tizen/20220216.004012~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F36%2F271136%2F2;p=platform%2Fcore%2Fbase%2Fbundle.git Fix bundle_add_byte_array function This patch handles the std::length_error exception. Change-Id: Ia569b59783e48ed1144a89d2c946f6a45e481b6f Signed-off-by: Hwankyu Jhun --- diff --git a/src/stub.cc b/src/stub.cc index 3b186bf..f8b94c0 100644 --- a/src/stub.cc +++ b/src/stub.cc @@ -658,11 +658,13 @@ extern "C" EXPORT_API int bundle_init_byte_array(bundle* b, KeyInfo* key_info; try { std::vector> values(len); - key_info = new KeyInfo(Bundle::Type::ByteArray, key, values); + key_info = new KeyInfo(Bundle::Type::ByteArray, key, std::move(values)); } catch (Exception& e) { return e.GetErrorCode(); } catch (const std::bad_alloc& ba) { return BUNDLE_ERROR_OUT_OF_MEMORY; + } catch (const std::length_error&) { + return BUNDLE_ERROR_OUT_OF_MEMORY; } try { diff --git a/tests/bundle_unittests/src/test_bundle.cc b/tests/bundle_unittests/src/test_bundle.cc index 6f9ad4f..7b4424d 100644 --- a/tests/bundle_unittests/src/test_bundle.cc +++ b/tests/bundle_unittests/src/test_bundle.cc @@ -1031,6 +1031,12 @@ TEST_F(BundleTest, bundle_add_byte_array_N) { ret = bundle_add_byte_array(b, "KEY", 3); ASSERT_EQ(ret, BUNDLE_ERROR_KEY_EXISTS); + + ret = bundle_add_byte_array(b, "aaaa", 1918646073); + ASSERT_EQ(ret, BUNDLE_ERROR_OUT_OF_MEMORY); + + ret = bundle_add_byte_array(b, "aaaa", -469762038); + ASSERT_EQ(ret, BUNDLE_ERROR_OUT_OF_MEMORY); } TEST_F(BundleTest, bundle_init_byte_array_P) {