Revision 579a97f7 linux-user/vm86.c
b/linux-user/vm86.c | ||
---|---|---|
64 | 64 |
TaskState *ts = env->opaque; |
65 | 65 |
struct target_vm86plus_struct * target_v86; |
66 | 66 |
|
67 |
lock_user_struct(target_v86, ts->target_v86, 0); |
|
67 |
if (!lock_user_struct(VERIFY_WRITE, target_v86, ts->target_v86, 0)) |
|
68 |
/* FIXME - should return an error */ |
|
69 |
return; |
|
68 | 70 |
/* put the VM86 registers in the userspace register structure */ |
69 | 71 |
target_v86->regs.eax = tswap32(env->regs[R_EAX]); |
70 | 72 |
target_v86->regs.ebx = tswap32(env->regs[R_EBX]); |
... | ... | |
424 | 426 |
ts->vm86_saved_regs.gs = env->segs[R_GS].selector; |
425 | 427 |
|
426 | 428 |
ts->target_v86 = vm86_addr; |
427 |
lock_user_struct(target_v86, vm86_addr, 1); |
|
429 |
if (!lock_user_struct(VERIFY_READ, target_v86, vm86_addr, 1)) |
|
430 |
return -EFAULT; |
|
428 | 431 |
/* build vm86 CPU state */ |
429 | 432 |
ts->v86flags = tswap32(target_v86->regs.eflags); |
430 | 433 |
env->eflags = (env->eflags & ~SAFE_MASK) | |
Also available in: Unified diff