* revert r27322 and apply the patch provided by Salvatore
Thanks you! :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27323 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2855,15 +2855,16 @@ _user_receive_data(thread_id *_userSender, void *buffer, size_t bufferSize)
|
|||||||
thread_id sender;
|
thread_id sender;
|
||||||
status_t code;
|
status_t code;
|
||||||
|
|
||||||
if (!IS_USER_ADDRESS(_userSender)
|
if ((!IS_USER_ADDRESS(_userSender) && _userSender != NULL)
|
||||||
|| !IS_USER_ADDRESS(buffer))
|
|| !IS_USER_ADDRESS(buffer))
|
||||||
return B_BAD_ADDRESS;
|
return B_BAD_ADDRESS;
|
||||||
|
|
||||||
code = receive_data_etc(&sender, buffer, bufferSize, B_KILL_CAN_INTERRUPT);
|
code = receive_data_etc(&sender, buffer, bufferSize, B_KILL_CAN_INTERRUPT);
|
||||||
// supports userland buffers
|
// supports userland buffers
|
||||||
|
|
||||||
if (user_memcpy(_userSender, &sender, sizeof(thread_id)) < B_OK)
|
if (_userSender != NULL)
|
||||||
return B_BAD_ADDRESS;
|
if (user_memcpy(_userSender, &sender, sizeof(thread_id)) < B_OK)
|
||||||
|
return B_BAD_ADDRESS;
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,10 +179,6 @@ send_data(thread_id thread, int32 code, const void *buffer, size_t bufferSize)
|
|||||||
int32
|
int32
|
||||||
receive_data(thread_id *_sender, void *buffer, size_t bufferSize)
|
receive_data(thread_id *_sender, void *buffer, size_t bufferSize)
|
||||||
{
|
{
|
||||||
if (_sender == NULL) {
|
|
||||||
thread_id id;
|
|
||||||
return _kern_receive_data(&id, buffer, bufferSize);
|
|
||||||
}
|
|
||||||
return _kern_receive_data(_sender, buffer, bufferSize);
|
return _kern_receive_data(_sender, buffer, bufferSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user