* 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:
Karsten Heimrich 2008-09-04 17:00:01 +00:00
parent 754b706519
commit 89cfd54279
2 changed files with 4 additions and 7 deletions

View File

@ -2855,15 +2855,16 @@ _user_receive_data(thread_id *_userSender, void *buffer, size_t bufferSize)
thread_id sender;
status_t code;
if (!IS_USER_ADDRESS(_userSender)
if ((!IS_USER_ADDRESS(_userSender) && _userSender != NULL)
|| !IS_USER_ADDRESS(buffer))
return B_BAD_ADDRESS;
code = receive_data_etc(&sender, buffer, bufferSize, B_KILL_CAN_INTERRUPT);
// supports userland buffers
if (user_memcpy(_userSender, &sender, sizeof(thread_id)) < B_OK)
return B_BAD_ADDRESS;
if (_userSender != NULL)
if (user_memcpy(_userSender, &sender, sizeof(thread_id)) < B_OK)
return B_BAD_ADDRESS;
return code;
}

View File

@ -179,10 +179,6 @@ send_data(thread_id thread, int32 code, const void *buffer, size_t bufferSize)
int32
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);
}