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