X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsession.cpp;h=a2671dbaee3ec3a40447e1fcb20b5e89ef9d87c4;hb=9fa5211eebb7270fd0d346d7f3a4a35be1f8b091;hp=e9d7261031d632fc44e4f820621a8e471a3e9e74;hpb=2d321d3ee31f191312a524f7120191005004d23f;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/session.cpp b/src/bin/lttng-sessiond/session.cpp index e9d726103..a2671dbae 100644 --- a/src/bin/lttng-sessiond/session.cpp +++ b/src/bin/lttng-sessiond/session.cpp @@ -1036,10 +1036,11 @@ void session_release(struct urcu_ref *ref) } lttng_dynamic_array_reset(&session->destroy_notifiers); lttng_dynamic_array_reset(&session->clear_notifiers); + free(session->last_archived_chunk_name); free(session->base_path); lttng_trigger_put(session->rotate_trigger); - free(session); + delete (session); if (session_published) { /* * Broadcast after free-ing to ensure the memory is @@ -1215,9 +1216,11 @@ enum lttng_error_code session_create(const char *name, uid_t uid, gid_t gid, goto error; } } - new_session = zmalloc(); - if (!new_session) { - PERROR("Failed to allocate an ltt_session structure"); + + try { + new_session = new ltt_session(); + } catch (const std::exception& ex) { + ERR("Failed to create ltt_session: %s", ex.what()); ret_code = LTTNG_ERR_NOMEM; goto error; }