|
@@ -329,9 +329,11 @@ asmlinkage long sys_oabi_semtimedop(int semid,
|
|
|
return -ENOMEM;
|
|
|
err = 0;
|
|
|
for (i = 0; i < nsops; i++) {
|
|
|
- __get_user_error(sops[i].sem_num, &tsops->sem_num, err);
|
|
|
- __get_user_error(sops[i].sem_op, &tsops->sem_op, err);
|
|
|
- __get_user_error(sops[i].sem_flg, &tsops->sem_flg, err);
|
|
|
+ struct oabi_sembuf osb;
|
|
|
+ err |= __copy_from_user(&osb, tsops, sizeof(osb));
|
|
|
+ sops[i].sem_num = osb.sem_num;
|
|
|
+ sops[i].sem_op = osb.sem_op;
|
|
|
+ sops[i].sem_flg = osb.sem_flg;
|
|
|
tsops++;
|
|
|
}
|
|
|
if (timeout) {
|