Skip to content
Snippets Groups Projects
Commit ba95ee29 authored by Utz-Uwe Haus's avatar Utz-Uwe Haus
Browse files

fix mio_obj size mismatch segv

parent 01c36fcb
No related branches found
No related tags found
2 merge requests!3Jsc ci update,!2update JSC-CI branch to devel
Pipeline #51231 passed
......@@ -98,13 +98,15 @@ int obj_open(struct mio_obj_id *oid, struct mio_obj *obj)
struct mio_op op;
memcpy(obj->mo_id.moi_bytes,
(void *)oid->moi_bytes, 128);
oid->moi_bytes, MIO_OBJ_ID_LEN);
memset(&op, 0, sizeof op);
DEBUG("mio_obj_open...\n");
rc = mio_obj_open(oid, obj, &op);
if (rc != 0)
return rc;
DEBUG("mio_obj_open worked, wait on op...\n");
/* If the object doesn't exist, -ENOENT will be returned? */
......@@ -119,7 +121,7 @@ int obj_open_busywait(struct mio_obj_id *oid, struct mio_obj *obj)
struct mio_op op;
memcpy(obj->mo_id.moi_bytes,
(void *)oid->moi_bytes, 128);
oid->moi_bytes, MIO_OBJ_ID_LEN);
do {
memset(&op, 0, sizeof op);
......@@ -235,17 +237,17 @@ int obj_write_sync(struct mio_obj *obj, uint32_t num_iov, struct mio_iovec *iov)
void obj_create_fail_cb(struct mio_op* op)
{
INFO("\e[1;34m Callback level 2: failed to create semaphore \e[0m\n");
INFO("\033[1;34m Callback level 2: failed to create semaphore \033[0m\n");
}
void obj_create_success_cb(struct mio_op* op)
{
INFO("\e[1;34m Callback level 2: semaphore ready. Safe to read. \e[0m\n");
INFO("\033[1;34m Callback level 2: semaphore ready. Safe to read. \033[0m\n");
}
void obj_write_fail_cb(struct mio_op *op)
{
INFO("\e[1;34m Async write fail callback called \e[0m\n");
INFO("\033[1;34m Async write fail callback called \033[0m\n");
int i;
struct obj_io_cb_args *args;
......@@ -295,18 +297,18 @@ INFO ("Not checking semaphore preexistence\n");
void obj_write_success_cb(struct mio_op *op)
{
INFO("\e[1;34m Async write success callback called \e[0m\n");
INFO("\033[1;34m Async write success callback called \033[0m\n");
struct obj_io_cb_args *args;
args = (struct obj_io_cb_args *)op->mop_app_cbs.moc_cb_data;
struct mio_obj sobj;
if (! (0 == obj_create_async(args->semid, &sobj))) {
WARN("\e[1;34m Callback level 1: Failed to create a semaphore objet with ID (errno: %d) \e[0m\n ", op->mop_rc);
WARN("\033[1;34m Callback level 1: Failed to create a semaphore objet with ID (errno: %d) \033[0m\n ", op->mop_rc);
} else {
//free(args->iovec->miov_base);
WITH_MIO_OBJ_STR(idstr, (struct mstro_cdo_id*)args->semid,
INFO("\e[1;34m Callback level 1: Asynchronously created a semaphore object with ID %s with success. \e[0m\n", idstr););
INFO("\033[1;34m Callback level 1: Asynchronously created a semaphore object with ID %s with success. \033[0m\n", idstr););
}
// free(args->semid);
}
......@@ -581,9 +583,10 @@ mstro_transport_mio_src_execute(mstro_cdo src, Mstro__Pool__TransferTicket* tick
// struct mio_thread thread;
// mio_thread_init(&thread);
struct mstro_cdo_id oid;
struct mstro_cdo_id semid;
struct mio_obj_id oid;
struct mio_obj_id semid;
assert(sizeof(struct mstro_cdo_id)==sizeof(struct mio_obj_id));
memcpy(&semid, ticket->mio->semid.data, ticket->mio->semid.len);
memcpy(&oid, ticket->mio->objid.data, ticket->mio->objid.len);
......@@ -594,9 +597,10 @@ mstro_transport_mio_src_execute(mstro_cdo src, Mstro__Pool__TransferTicket* tick
INFO("Sanity check object ID from ticket: %s\n",
idstr););
/* the async op will copy oid/semid content, so it's safe to use stack-allocated structs */
if (! (MSTRO_OK == mstro_mio_obj_write_async(src, ticket,
(struct mio_obj_id*)&oid,
(struct mio_obj_id*)&semid))) {
&oid,
&semid))) {
/* Already printed an error */
return MSTRO_FAIL;
}
......@@ -616,7 +620,7 @@ mstro_transport_mio_dst_execute(mstro_cdo dst,
|| ticket == NULL
|| ticket->ticket_case!=MSTRO__POOL__TRANSFER_TICKET__TICKET_MIO) {
ERR("mstro_transport_mio_dst_execute() called with invalid arguments (%p/%p/%d)\n",
dst, ticket, ticket? ticket->ticket_case : -1);
dst, ticket, ticket? (int)ticket->ticket_case : -1);
return MSTRO_INVARG;
}
INFO("Executing mio transport dst side for CDO %s\n", dst->name);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment