We have found a number of memory leaks in the code generated by WSDL2c

Here they are:
1.    Looping though a hash table ...  The typical code is:
for (hi = axutil_hash_first(attribute_hash, env); hi; hi = axutil_hash_next(env, hi))
                       {
                           axutil_hash_this(hi, &key, NULL, &val);


                               if(!strcmp((axis2_char_t*)key, "result"))

                               {
                                   parent_attri = (axiom_attribute_t*)val;
                                   break;
                               }
                       }
This works fine unless the "break" occurs. in that case the "hi" allocated in "axutil_hash_first" leaks. The remedy is to add
             AXIS2_FREE(env->allocator, hi);
before the "break;" inside the loop or  to add
               if (hi) {
                 AXIS2_FREE(env->allocator, hi);
               }
at the end of the loop.

2. Memory allocated in axutil_qname_create we found this in the function "axis2_stub_populate_services_for_XXX"
       (XXX is the name of our specific application service)

the generated code reads:
         svc_qname = axutil_qname_create(env,"XXX" ,NULL, NULL);
         axis2_svc_set_qname (svc, env, svc_qname);

it should be followed by:
    axutil_qname_free(svc_qname,env);
to fix the leak
This also occurs in "adb_YYY_create" (YYY being one of the nodes in our XML tree) but i may exist elsewhere as well.

Thanks


---------------------------------------------------------------------
To unsubscribe, e-mail: c-user-unsubscr...@axis.apache.org
For additional commands, e-mail: c-user-h...@axis.apache.org

Reply via email to