diff --git a/common/src/io_uring.cpp b/common/src/io_uring.cpp index d93fe37..e9af2f4 100644 --- a/common/src/io_uring.cpp +++ b/common/src/io_uring.cpp @@ -63,12 +63,6 @@ static void user_data_destory(struct user_data *data) { if (data) { - if (data->vec.iov_base) - { - free(data->vec.iov_base); - data->vec.iov_base = NULL; - } - free(data); data = NULL; } @@ -76,8 +70,8 @@ static void user_data_destory(struct user_data *data) static struct user_data *user_data_create(int buff_size) { - struct user_data *data = (struct user_data *)calloc(1, sizeof(struct user_data)); - data->vec.iov_base = (void *)calloc(buff_size, sizeof(char)); + struct user_data *data = (struct user_data *)calloc(1, sizeof(struct user_data) + buff_size * sizeof(char)); + data->vec.iov_base = (void *)data + sizeof(struct user_data); data->vec.iov_len = buff_size; return data;