Indeed! This is like in case of CORBA::Long
MICO::UniCodesetConv::decode (CORBA::Buffer &f, CORBA::ULong len,
                              CORBA::WChar *t, CORBA::Boolean terminate)
method below the code.

Thanks, the fix is applied now!
Karel

Zoltan Bordas wrote:
> I found a problem when using UTF-8 encoding as the native codeset. When the 
> response is being decoded the following code causes an access violation:
> 
> CORBA::Long
> MICO::UniCodesetConv::decode (CORBA::Buffer &f, CORBA::ULong len,
>                                                       CORBA::Char *t, 
> CORBA::Boolean terminate)
> {
>     char *cp, *to;
> 
>     CORBA::ULong flen = _from->codepoint_size();
>     if (flen == 3)
>                 flen = 4;
>     flen *= len;
> 
>     if (len * _from->codepoint_size() > f.length()) {
>       return -1;
>     }
> 
> #ifdef __GNUG__
>     char _f[flen+1];
> #else
>     CORBA::String_var _f;
>     if (_from->codepoint_size() != 1)
>                 _f = CORBA::string_alloc (flen);
> #endif
> 
> <<<< Access violation - _f is uninitialized >>>>    if (!f.get (_f, len * 
> _from->codepoint_size())) {
>       return -1;
> 
> The condition needs to be removed from the string initialization otherwise we 
> are calling the get method to an uninitialized string.
> 
> Zoltan
> 
> --- codeset.cc.original    2008-07-25 16:41:44.000000000 -0500
> +++ codeset.cc 2009-01-06 13:11:54.531250000 -0600
> @@ -720,9 +720,7 @@
>  #ifdef __GNUG__
>      char _f[flen+1];
>  #else
> -    CORBA::String_var _f;
> -    if (_from->codepoint_size() != 1)
> -              _f = CORBA::string_alloc (flen);
> +    CORBA::String_var _f = CORBA::string_alloc (flen);
>  #endif
> 
>      if (!f.get (_f, len * _from->codepoint_size())) {
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mico-devel mailing list
> Mico-devel@mico.org
> http://www.mico.org/mailman/listinfo/mico-devel


-- 
Karel Gardas                  kgar...@objectsecurity.com
ObjectSecurity Ltd.           http://www.objectsecurity.com
_______________________________________________
Mico-devel mailing list
Mico-devel@mico.org
http://www.mico.org/mailman/listinfo/mico-devel

Reply via email to