projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: consumerd: type confusion in lttng_consumer_send_error
[lttng-tools.git]
/
src
/
common
/
consumer
/
consumer.cpp
diff --git
a/src/common/consumer/consumer.cpp
b/src/common/consumer/consumer.cpp
index 7e7e7d384cd20565e48bf3bad2793a41f31d1ca6..ed844f8dfd8a4d27826ea6b8644d04fc244b0014 100644
(file)
--- a/
src/common/consumer/consumer.cpp
+++ b/
src/common/consumer/consumer.cpp
@@
-45,6
+45,7
@@
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/types.h>
+#include <type_traits>
#include <unistd.h>
lttng_consumer_global_data the_consumer_data;
#include <unistd.h>
lttng_consumer_global_data the_consumer_data;
@@
-1255,11
+1256,17
@@
void lttng_consumer_set_command_sock_path(struct lttng_consumer_local_data *ctx,
* Send return code to the session daemon.
* If the socket is not defined, we return 0, it is not a fatal error
*/
* Send return code to the session daemon.
* If the socket is not defined, we return 0, it is not a fatal error
*/
-int lttng_consumer_send_error(struct lttng_consumer_local_data *ctx, int cmd)
+int lttng_consumer_send_error(struct lttng_consumer_local_data *ctx,
+ enum lttcomm_return_code error_code)
{
if (ctx->consumer_error_socket > 0) {
{
if (ctx->consumer_error_socket > 0) {
+ const std::int32_t comm_code = std::int32_t(error_code);
+
+ static_assert(
+ sizeof(comm_code) >= sizeof(std::underlying_type<lttcomm_return_code>),
+ "Fixed-size communication type too small to accomodate lttcomm_return_code");
return lttcomm_send_unix_sock(
return lttcomm_send_unix_sock(
- ctx->consumer_error_socket, &c
md, sizeof(enum lttcomm_sessiond_command
));
+ ctx->consumer_error_socket, &c
omm_code, sizeof(comm_code
));
}
return 0;
}
return 0;
This page took
0.023975 seconds
and
4
git commands to generate.