projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: illegal memory access in cmd_snapshot_record
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
agent.c
diff --git
a/src/bin/lttng-sessiond/agent.c
b/src/bin/lttng-sessiond/agent.c
index e9cd5fa050a2ac5b32d46e0e5478ec22d99f9a86..27e7d029c9e452bccd5874239fcb68c7767f6364 100644
(file)
--- a/
src/bin/lttng-sessiond/agent.c
+++ b/
src/bin/lttng-sessiond/agent.c
@@
-299,8
+299,11
@@
static ssize_t list_events(struct agent_app *app, struct lttng_event **events)
for (i = 0; i < nb_event; i++) {
offset += len;
for (i = 0; i < nb_event; i++) {
offset += len;
- strncpy(tmp_events[i].name, reply->payload + offset,
- sizeof(tmp_events[i].name));
+ if (lttng_strncpy(tmp_events[i].name, reply->payload + offset,
+ sizeof(tmp_events[i].name))) {
+ ret = LTTNG_ERR_INVALID;
+ goto error;
+ }
tmp_events[i].pid = app->pid;
tmp_events[i].enabled = -1;
len = strlen(reply->payload + offset) + 1;
tmp_events[i].pid = app->pid;
tmp_events[i].enabled = -1;
len = strlen(reply->payload + offset) + 1;
@@
-403,14
+406,17
@@
static int disable_event(struct agent_app *app, struct agent_event *event)
app->pid, app->sock->fd);
data_size = sizeof(msg);
app->pid, app->sock->fd);
data_size = sizeof(msg);
+ memset(&msg, 0, sizeof(msg));
+ if (lttng_strncpy(msg.name, event->name, sizeof(msg.name))) {
+ ret = LTTNG_ERR_INVALID;
+ goto error;
+ }
ret = send_header(app->sock, data_size, AGENT_CMD_DISABLE, 0);
if (ret < 0) {
goto error_io;
}
ret = send_header(app->sock, data_size, AGENT_CMD_DISABLE, 0);
if (ret < 0) {
goto error_io;
}
- memset(&msg, 0, sizeof(msg));
- strncpy(msg.name, event->name, sizeof(msg.name));
ret = send_payload(app->sock, &msg, sizeof(msg));
if (ret < 0) {
goto error_io;
ret = send_payload(app->sock, &msg, sizeof(msg));
if (ret < 0) {
goto error_io;
@@
-807,7
+813,8
@@
struct agent_event *agent_create_event(const char *name,
DBG3("Agent create new event with name %s, loglevel type %d, \
loglevel value %d and filter %s",
DBG3("Agent create new event with name %s, loglevel type %d, \
loglevel value %d and filter %s",
- name, loglevel_type, loglevel_value, filter_expression);
+ name, loglevel_type, loglevel_value,
+ filter_expression ? filter_expression : "NULL");
if (!name) {
ERR("Failed to create agent event; no name provided.");
if (!name) {
ERR("Failed to create agent event; no name provided.");
This page took
0.029882 seconds
and
4
git commands to generate.