0001-Fix-race-for-IOCTL_SERIAL_WAIT_ON_MASK.patch

Alexandre Julliard julliard at winehq.org
Wed Sep 4 12:43:29 CDT 2013


Wolfgang Walter <wine at stwm.de> writes:

> @@ -1265,8 +1265,12 @@ static inline NTSTATUS io_control(HANDLE hDevice,
>      case IOCTL_SERIAL_WAIT_ON_MASK:
>          if (lpOutBuffer && nOutBufferSize == sizeof(DWORD))
>          {
> +            piosb->u.Status = STATUS_PENDING;
> +            piosb->Information = 0;
>              if (!(status = wait_on(hDevice, fd, hEvent, piosb, lpOutBuffer)))
>                  sz = sizeof(DWORD);
> +            else if (status == STATUS_PENDING)
> +                return status;

Status is not supposed to be set until the operation is done.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list