If I remember right, there was a bug in the parameters that has been
fixed since.
Lets try the cvs version or I have a tar ball here
http://server1.xrdp.org/xrdp/xrdp-cvs-03-17-2010.tar.gz

Thanks
Jay

> I found a problem that caused the pointer sent to memcpy to be
> unaddressable only on 64bit big endian systems.  This function has some
> arguments backwards and this results in casiting a pointer to an int and
> then back to a char* later giving an invalid address in the
> "lib_mod_event" callback.  I've corrected the arguments to the function,
> and the call to the callback.
> This function is static and therefore has no declaration in a header,
> which may be why it evaded detection.
>
> I think this change belongs in the products source but I'm not a CVS
> committer so its up to someone greater than me...
> Please send me some feedback about this.
> Wendell Nichols
>
> Before my change:
> static int APP_CC
> xrdp_wm_process_channel_data(struct xrdp_wm* self, int channel_id,
>                              char* data, int data_len)
> {
>  if (self->mm->mod != 0)
>   {
>     if (self->mm->mod->mod_event != 0)
>     {
>       self->mm->mod->mod_event(self->mm->mod, 0x5555, channel_id,
> (long)data,
>                                data_len, 0);
>     }
>   }
>   return 0;
> }
>
>
> After my change:
> /******************************************************************************/
> static int APP_CC
> xrdp_wm_process_channel_data(struct xrdp_wm* self, int channel_id,
>                                 int data_len, char*data)
>
> {
>  if (self->mm->mod != 0)
>   {
>     if (self->mm->mod->mod_event != 0)
>     {
>       self->mm->mod->mod_event(self->mm->mod, 0x5555, channel_id,
> (long)data_len,
>                                data, 0);
>     }
>   }
>   return 0;
> }
>
>
>
>
>
>
>
>
>
>
> I found a "fix" for this but I cannot explain why it is working as it is:
>
>
>
>
>
>
>
>
>
>
> In vnc.c the function
>
> int DEFAULT_CC
> lib_mod_event(struct vnc* v, int msg, long param1, long param2,
>               long param3, long param4)
> {
>
> gets called with different arguments on my x86 linux box vs my zLinux
> os390 box:
> on zlinux the size is in param3 and data is in param4.  On x86 its the
> other way around.  I swapped the way the parms were used on zlinux to
> mkake it work and it does work but I don't see why there is a
> difference.  I'll have to get both systems breakstopped and th

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
xrdp-devel mailing list
xrdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xrdp-devel

Reply via email to