Hi,

The mico 2.3.13 has the following code for
POA_impl::create_reference_with_id in poa_impl.cc:2848.

CORBA::Object_ptr
MICOPOA::POA_impl::create_reference_with_id (const
PortableServer::ObjectId & id,
                                             const char * repoid)
{
  assert (repoid);

  POAObjectReference * por = new POAObjectReference (this, id, repoid);
  CORBA::Object_ptr obj = por->ref();
  if (id_assignment_policy->value() == PortableServer::SYSTEM_ID
      && CORBA::is_nil(obj)) {
    // it seems that supplied object id
    // was not generated by this orb/poa
    mico_throw(CORBA::BAD_PARAM(14, CORBA::COMPLETED_NO));
  }
  assert (!CORBA::is_nil (obj));
  delete por;
  return obj;
}

We can see that if mico_throw is executed, then the statement delete
is never executed, causing por to leak.

Regards,
-- 
Felipe Magno de Almeida

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
Mico-devel mailing list
Mico-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mico-devel

Reply via email to