mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
[kernel] fix err_insufficient bug in endpoint
The endpoint syscalls endpoint_recv and endpoint_sendrecv gained new local stack variables for calling into possibly blocking endpoint functions, but the len variable was being initialized to 0 instead of the incoming buffer size.
This commit is contained in:
@@ -36,7 +36,7 @@ endpoint_receive(j6_handle_t handle, j6_tag_t *tag, size_t *len, void *data)
|
|||||||
if (!e) return j6_err_invalid_arg;
|
if (!e) return j6_err_invalid_arg;
|
||||||
|
|
||||||
j6_tag_t out_tag = j6_tag_invalid;
|
j6_tag_t out_tag = j6_tag_invalid;
|
||||||
size_t out_len = 0;
|
size_t out_len = *len;
|
||||||
j6_status_t s = e->receive(&out_tag, &out_len, data);
|
j6_status_t s = e->receive(&out_tag, &out_len, data);
|
||||||
*tag = out_tag;
|
*tag = out_tag;
|
||||||
*len = out_len;
|
*len = out_len;
|
||||||
@@ -57,7 +57,7 @@ endpoint_sendrecv(j6_handle_t handle, j6_tag_t *tag, size_t *len, void *data)
|
|||||||
return status;
|
return status;
|
||||||
|
|
||||||
j6_tag_t out_tag = j6_tag_invalid;
|
j6_tag_t out_tag = j6_tag_invalid;
|
||||||
size_t out_len = 0;
|
size_t out_len = *len;
|
||||||
j6_status_t s = e->receive(&out_tag, &out_len, data);
|
j6_status_t s = e->receive(&out_tag, &out_len, data);
|
||||||
*tag = out_tag;
|
*tag = out_tag;
|
||||||
*len = out_len;
|
*len = out_len;
|
||||||
|
|||||||
Reference in New Issue
Block a user