]> Zhao Yanbai Git Server - minix.git/commitdiff
Kernel: fix for senda erroneously setting errors
authorDavid van Moolenbroek <david@minix3.org>
Mon, 31 Oct 2011 16:03:26 +0000 (16:03 +0000)
committerDavid van Moolenbroek <david@minix3.org>
Mon, 31 Oct 2011 18:43:37 +0000 (18:43 +0000)
Bug reported and fixed by Arne Welzel.

kernel/proc.c

index b8cf5cf99683f440935af62eea698917d112d4d0..95291e0cd85feb986f60facc7f02f7f2fab53dd8 100644 (file)
@@ -1079,7 +1079,7 @@ field, caller->p_name, entry, priv(caller)->s_asynsize, priv(caller)->s_asyntab)
  *===========================================================================*/
 PRIVATE int mini_senda(struct proc *caller_ptr, asynmsg_t *table, size_t size)
 {
-  int r = OK, dst_p, done, do_notify;
+  int r, dst_p, done, do_notify;
   unsigned int i;
   unsigned flags;
   endpoint_t dst;
@@ -1129,6 +1129,7 @@ PRIVATE int mini_senda(struct proc *caller_ptr, asynmsg_t *table, size_t size)
        if (!(flags & AMF_VALID)) return(EINVAL); /* Must contain message */
        if (flags & AMF_DONE) continue; /* Already done processing */
 
+       r = OK;
        if (!isokendpt(tabent.dst, &dst_p)) 
                r = EDEADSRCDST; /* Bad destination, report the error */
        else if (iskerneln(dst_p))