projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add EEXIST support for kernel event on the tracer side
[lttng-tools.git]
/
liblttngctl
/
lttngctl.c
diff --git
a/liblttngctl/lttngctl.c
b/liblttngctl/lttngctl.c
index c2b1242d8c4897c6df6c912e2f6131f36ad6a895..0442a4f02bdbc686a868bf1abbc40a1896420894 100644
(file)
--- a/
liblttngctl/lttngctl.c
+++ b/
liblttngctl/lttngctl.c
@@
-21,18
+21,17
@@
*/
#define _GNU_SOURCE
*/
#define _GNU_SOURCE
-#include <errno.h>
#include <grp.h>
#include <grp.h>
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <lttng/lttng.h>
-
#include <lttng-sessiond-comm.h>
#include <lttng-sessiond-comm.h>
-#include "lttngerr.h"
-#include "lttng-share.h"
+#include <lttng-share.h>
+#include <lttng/lttng.h>
+#include <lttngerr.h>
/* Socket to session daemon for communication */
static int sessiond_socket;
/* Socket to session daemon for communication */
static int sessiond_socket;
@@
-348,6
+347,16
@@
static int ask_sessiond(struct lttcomm_session_msg *lsm, void **buf)
goto end;
}
goto end;
}
+ /*
+ * Extra protection not to dereference a NULL pointer. If buf is NULL at
+ * this point, an error is returned and data is freed.
+ */
+ if (buf == NULL) {
+ ret = -1;
+ free(data);
+ goto end;
+ }
+
*buf = data;
ret = size;
*buf = data;
ret = size;
@@
-483,7
+492,7
@@
int lttng_enable_event(struct lttng_handle *handle,
{
struct lttcomm_session_msg lsm;
{
struct lttcomm_session_msg lsm;
- if (!handle) {
+ if (!handle
|| ev == NULL
) {
return -1;
}
return -1;
}
@@
-497,12
+506,12
@@
int lttng_enable_event(struct lttng_handle *handle,
copy_lttng_domain(&lsm.domain, &handle->domain);
copy_lttng_domain(&lsm.domain, &handle->domain);
- if (ev) {
+ if (ev
->name[0] != '\0'
) {
lsm.cmd_type = LTTNG_ENABLE_EVENT;
lsm.cmd_type = LTTNG_ENABLE_EVENT;
- memcpy(&lsm.u.enable.event, ev, sizeof(lsm.u.enable.event));
} else {
lsm.cmd_type = LTTNG_ENABLE_ALL_EVENT;
}
} else {
lsm.cmd_type = LTTNG_ENABLE_ALL_EVENT;
}
+ memcpy(&lsm.u.enable.event, ev, sizeof(lsm.u.enable.event));
copy_string(lsm.session.name, handle->session_name,
sizeof(lsm.session.name));
copy_string(lsm.session.name, handle->session_name,
sizeof(lsm.session.name));
This page took
0.02439 seconds
and
4
git commands to generate.