Hi,

here's a patch for a bug in skins/rtdm/syscall.c. The msghdr was not
copied to user space upon completion of a recvmsg() call if the return
value was not equal to zero. But recvmsg shall return the length of the
message in bytes (according to IEEE Std 1003.1).

I have the permission from Jan to patch his code. ;-)


Sebastian
--- xenomai/skins/rtdm/syscall.c        2005-11-10 16:45:24.000000000 +0100
+++ syscall.c   2005-11-10 16:27:08.000000000 +0100
@@ -99,7 +99,7 @@ static int sys_rtdm_recvmsg(struct task_
 
     ret = _rtdm_recvmsg(curr, __xn_reg_arg1(regs), &krnl_msg,
                         __xn_reg_arg3(regs));
-    if (!ret)
+    if (ret >= 0)
         __xn_copy_to_user(curr, (void __user *)__xn_reg_arg2(regs), &krnl_msg,
                           sizeof(krnl_msg));
 
_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to