Fix: ust-consumer.c: Double unlock of channel lock
[lttng-tools.git] / src / common / event.c
CommitLineData
76fcf151
JG
1/*
2 * Copyright (C) 2018 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
3 *
4 * This library is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License, version 2.1 only,
6 * as published by the Free Software Foundation.
7 *
8 * This library is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
11 * for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this library; if not, write to the Free Software Foundation,
15 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17
18#include <lttng/event-internal.h>
19#include <common/error.h>
20
21LTTNG_HIDDEN
22struct lttng_event *lttng_event_copy(const struct lttng_event *event)
23{
24 struct lttng_event *new_event;
25 struct lttng_event_extended *new_event_extended;
26
27 new_event = zmalloc(sizeof(*event));
28 if (!new_event) {
29 PERROR("Error allocating event structure");
30 goto end;
31 }
32
33 /* Copy the content of the old event. */
34 memcpy(new_event, event, sizeof(*event));
35
36 /*
37 * We need to create a new extended since the previous pointer is now
38 * invalid.
39 */
40 new_event_extended = zmalloc(sizeof(*new_event_extended));
41 if (!new_event_extended) {
42 PERROR("Error allocating event extended structure");
43 goto error;
44 }
45
46 new_event->extended.ptr = new_event_extended;
47end:
48 return new_event;
49error:
50 free(new_event);
37750a61 51 new_event = NULL;
76fcf151
JG
52 goto end;
53}
This page took 0.045558 seconds and 4 git commands to generate.