projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: lttng-ctl: appending to dynamic buffer invalidates its data member
[lttng-tools.git]
/
src
/
lib
/
lttng-ctl
/
lttng-ctl.c
diff --git
a/src/lib/lttng-ctl/lttng-ctl.c
b/src/lib/lttng-ctl/lttng-ctl.c
index 38df4cb7b11c1234c5b33f8b92d1731ea541585f..5b774e1d6bcbc1e9df4c01efc0e98634e1172e72 100644
(file)
--- a/
src/lib/lttng-ctl/lttng-ctl.c
+++ b/
src/lib/lttng-ctl/lttng-ctl.c
@@
-116,7
+116,8
@@
static int send_session_msg(struct lttcomm_session_msg *lsm)
goto end;
}
goto end;
}
- DBG("LSM cmd type : %d", lsm->cmd_type);
+ DBG("LSM cmd type: '%s' (%d)", lttcomm_sessiond_command_str(lsm->cmd_type),
+ lsm->cmd_type);
ret = lttcomm_send_creds_unix_sock(sessiond_socket, lsm,
sizeof(struct lttcomm_session_msg));
ret = lttcomm_send_creds_unix_sock(sessiond_socket, lsm,
sizeof(struct lttcomm_session_msg));
@@
-652,7
+653,12
@@
int lttng_ctl_ask_sessiond_payload(struct lttng_payload_view *message,
/* Check error code if OK */
if (llm.ret_code != LTTNG_OK) {
/* Check error code if OK */
if (llm.ret_code != LTTNG_OK) {
- ret = -llm.ret_code;
+ if (llm.ret_code < LTTNG_OK || llm.ret_code >= LTTNG_ERR_NR) {
+ /* Invalid error code received. */
+ ret = -LTTNG_ERR_UNK;
+ } else {
+ ret = -llm.ret_code;
+ }
goto end;
}
goto end;
}
@@
-3141,18
+3147,18
@@
int lttng_register_trigger(struct lttng_trigger *trigger)
goto end;
}
goto end;
}
- /*
- * This is needed to populate the trigger object size for the command
- * header.
- */
- message_lsm = (struct lttcomm_session_msg *) message.buffer.data;
-
ret = lttng_trigger_serialize(trigger, &message);
if (ret < 0) {
ret = -LTTNG_ERR_UNK;
goto end;
}
ret = lttng_trigger_serialize(trigger, &message);
if (ret < 0) {
ret = -LTTNG_ERR_UNK;
goto end;
}
+ /*
+ * This is needed to populate the trigger object size for the command
+ * header.
+ */
+ message_lsm = (struct lttcomm_session_msg *) message.buffer.data;
+
message_lsm->u.trigger.length = (uint32_t) message.buffer.size - sizeof(lsm);
{
message_lsm->u.trigger.length = (uint32_t) message.buffer.size - sizeof(lsm);
{
This page took
0.02414 seconds
and
4
git commands to generate.