Thanks for getting back so fast Jay. I looked at your CVS snapshot and I agree that it will fix the problem I observed. Do you have plans for a release soon? wcn
On 03/17/2010 10:36 PM, Jay Sorg wrote: > 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