summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2009-12-09 13:11:51 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2009-12-09 13:11:51 +0000
commit204499c44014a9d63534ce49efe14ef961de641e (patch)
tree4802b2ddf64aaad9fbcea1833ab7805c6170391f
parentc6060bb2a439e23dbe4a73adf59b1897baaed9c4 (diff)
downloadATCD-204499c44014a9d63534ce49efe14ef961de641e.tar.gz
Wed Dec 9 13:11:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/impl/ndds/Updater_T.cpp: Check whether instance_handle and instance match
-rw-r--r--CIAO/ChangeLog5
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp12
2 files changed, 17 insertions, 0 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 0b8fd4eeb81..fea0bd81379 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,8 @@
+Wed Dec 9 13:11:33 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Check whether instance_handle and instance match
+
Wed Dec 9 12:55:23 UTC 2009 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/tests/Event_Connection_Test/Base/Event_Connection_Test_Base.mpc:
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
index 805ac01d662..506c65b42e7 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
@@ -119,6 +119,18 @@ CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::update_one (
{
hnd = this->impl_->lookup_instance (an_instance);
}
+ else
+ {
+ // Check explicitly if the instance handle matches the instance, this
+ // is not checked by RTI DDS
+ DDS_InstanceHandle_t const instance_handle =
+ this->impl_->lookup_instance (an_instance);
+
+ if (!DDS_InstanceHandle_equals (&hnd, &instance_handle))
+ {
+ throw CCM_DDS::InternalError (::DDS_RETCODE_BAD_PARAMETER, 0);
+ }
+ }
if (DDS_InstanceHandle_equals (&hnd, &::DDS_HANDLE_NIL))
{
throw CCM_DDS::NonExistent (0);