Revision 579a97f7 exec.c

b/exec.c
2510 2510
        if (is_write) {
2511 2511
            if (!(flags & PAGE_WRITE))
2512 2512
                return;
2513
            p = lock_user(addr, len, 0);
2513
            /* XXX: this code should not depend on lock_user */
2514
            if (!(p = lock_user(VERIFY_WRITE, addr, len, 0)))
2515
                /* FIXME - should this return an error rather than just fail? */
2516
                return;
2514 2517
            memcpy(p, buf, len);
2515 2518
            unlock_user(p, addr, len);
2516 2519
        } else {
2517 2520
            if (!(flags & PAGE_READ))
2518 2521
                return;
2519
            p = lock_user(addr, len, 1);
2522
            /* XXX: this code should not depend on lock_user */
2523
            if (!(p = lock_user(VERIFY_READ, addr, len, 1)))
2524
                /* FIXME - should this return an error rather than just fail? */
2525
                return;
2520 2526
            memcpy(buf, p, len);
2521 2527
            unlock_user(p, addr, 0);
2522 2528
        }

Also available in: Unified diff