Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: david.goulet@polymtl.ca (David Goulet)
Subject: [lttng-dev] [PATCH] lttng-tools add_context.c : Fixing memory leaks
Date: Mon, 30 Jan 2012 16:18:18 -0500	[thread overview]
Message-ID: <4F27091A.80606@polymtl.ca> (raw)
In-Reply-To: <3CA1A65C03C1A34C81BBC6272782E6968089DE@valcartierex01.valcartier.drdc-rddc.gc.ca>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

For some reason, this patch does not apply ...

Applying: lttng-tools add_context.c : Fixing memory leaks
error: patch failed: src/bin/lttng/commands/add_context.c:520
error: src/bin/lttng/commands/add_context.c: patch does not apply

In the meantime, I've merge the others since there are not using
lttng/commands/add_context.c

Also, this set of patch had a minor problem having
"lttng2-lttng-tools-2.0-pre18+-5c73c59/" added to all paths in the diff. Don't
know why because the previous one were fine...

Please update your git head before resending this one, I've merge your latest
working patches.

Thanks!
David

On 12-01-30 03:31 PM, Thibault, Daniel wrote:
>    This second patch fixes a memory leak in lttng-consumerd.c, various strings and comments, directs usage to stdout for --help, and enforces the return values of cmd_add_context().
> 
> ------------------------------
> From 39726bfddd9dc1cd8931eb1bbddc54b78c2d16e3 Mon, 30 Jan 2012 15:22:28 -0500
> From: Daniel U. Thibault <daniel.thibault@drdc-rddc.gc.ca>
> Date: Mon, 30 Jan 2012 15:22:18 -0500
> Subject: [PATCH] lttng-tools add_context.c : Fixing memory leaks
> 
> Signed-off-by: Daniel U. Thibault <daniel.thibault at drdc-rddc.gc.ca>
> 
> diff --git a/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/bin/lttng/commands/add_context.c b/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/bin/lttng/commands/add_context.c
> index 2f3bce1..523a8b6 100644
> --- a/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/bin/lttng/commands/add_context.c
> +++ b/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/bin/lttng/commands/add_context.c
> @@ -313,14 +313,14 @@
>  	fprintf(ofp, "Options:\n");
>  	fprintf(ofp, "  -h, --help               Show this help\n");
>  	fprintf(ofp, "      --list-options       Simple listing of options\n");
> -	fprintf(ofp, "  -s, --session NAME       Apply on session name\n");
> -	fprintf(ofp, "  -c, --channel NAME       Apply on channel\n");
> -	fprintf(ofp, "  -e, --event NAME         Apply on event\n");
> +	fprintf(ofp, "  -s, --session NAME       Apply to session\n");
> +	fprintf(ofp, "  -c, --channel NAME       Apply to channel\n");
> +	fprintf(ofp, "  -e, --event NAME         Apply to event\n");
>  	fprintf(ofp, "  -k, --kernel             Apply to the kernel tracer\n");
>  #if 0
>  	fprintf(ofp, "  -u, --userspace [CMD]    Apply to the user-space tracer\n");
>  	fprintf(ofp, "                           If no CMD, the domain used is UST global\n");
> -	fprintf(ofp, "                           or else the domain is UST EXEC_NAME\n");
> +	fprintf(ofp, "                           otherwise the domain is UST EXEC_NAME\n");
>  	fprintf(ofp, "  -p, --pid PID            If -u, apply to specific PID (domain: UST PID)\n");
>  #else
>  	fprintf(ofp, "  -u, --userspace          Apply to the user-space tracer\n");
> @@ -385,7 +385,7 @@
>  		goto error;
>  	}
>  
> -	/* Iterate over all context type given */
> +	/* Iterate over all the context types given */
>  	cds_list_for_each_entry(type, &ctx_type_list.head, list) {
>  		context.ctx = type->opt->ctx_type;
>  		if (context.ctx == LTTNG_EVENT_CONTEXT_PERF_COUNTER) {
> @@ -444,7 +444,7 @@
>  }
>  
>  /*
> - * Add context on channel or event.
> + * Add context to channel or event.
>   */
>  int cmd_add_context(int argc, const char **argv)
>  {
> @@ -455,6 +455,7 @@
>  
>  	if (argc < 2) {
>  		usage(stderr);
> +		ret = CMD_ERROR;
>  		goto end;
>  	}
>  
> @@ -464,17 +465,10 @@
>  	while ((opt = poptGetNextOpt(pc)) != -1) {
>  		switch (opt) {
>  		case OPT_HELP:
> -			usage(stderr);
> +			usage(stdout);
>  			ret = CMD_SUCCESS;
>  			goto end;
>  		case OPT_TYPE:
> -			type = malloc(sizeof(struct ctx_type));
> -			if (type == NULL) {
> -				perror("malloc ctx_type");
> -				ret = -1;
> -				goto end;
> -			}
> -
>  			/*
>  			 * Look up the index of opt_type in ctx_opts[] first, so we don't
>  			 * have to free(type) on failure.
> @@ -482,11 +476,21 @@
>  			index = find_ctx_type_idx(opt_type);
>  			if (index < 0) {
>  				ERR("Unknown context type %s", opt_type);
> +				ret = CMD_ERROR;
> +				goto end;
> +			}
> +			type = malloc(sizeof(struct ctx_type));
> +			if (type == NULL) {
> +				perror("malloc ctx_type");
> +				ret = CMD_FATAL;
>  				goto end;
>  			}
>  			type->opt = &ctx_opts[index];
>  			if (type->opt->ctx_type == -1) {
>  				ERR("Unknown context type %s", opt_type);
> +				free(type);
> +				ret = CMD_ERROR;
> +				goto end;
>  			} else {
>  				cds_list_add(&type->list, &ctx_type_list.head);
>  			}
> @@ -511,7 +515,7 @@
>  	if (!opt_session_name) {
>  		session_name = get_session_name();
>  		if (session_name == NULL) {
> -			ret = -1;
> +			ret = CMD_ERROR;
>  			goto end;
>  		}
>  	} else {
> @@ -520,11 +524,11 @@
>  
>  	ret = add_context(session_name);
>  
> +end:
>  	/* Cleanup allocated memory */
>  	cds_list_for_each_entry_safe(type, tmptype, &ctx_type_list.head, list) {
>  		free(type);
>  	}
>  
> -end:
>  	return ret;
>  } 
> ------------------------------
> 
> Daniel U. Thibault
> R & D pour la d?fense Canada - Valcartier (RDDC Valcartier) / Defence R&D Canada - Valcartier (DRDC Valcartier)
> Syst?me de syst?mes (SdS) / System of Systems (SoS)
> Solutions informatiques et exp?rimentations (SIE) / Computing Solutions and Experimentations (CSE)
> 2459 Boul. Pie XI Nord
> Qu?bec, QC  G3J 1X5
> CANADA
> Vox : (418) 844-4000 x4245
> Fax : (418) 844-4538
> NAC: 918V QSDJ
> Gouvernement du Canada / Government of Canada
> <http://www.valcartier.drdc-rddc.gc.ca/>
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBAgAGBQJPJwkaAAoJEELoaioR9I02aQoH/0EYiVQzx860wWFh1gZ5iKCh
vXu5pbRqHNjxM7/Qn5PQHDmqzfSxT+NfBf8Azsm2jUnOOssb+27cUdMOQqCZfLRH
nEyfjb+mQlqYqIkEAaPQ/eAO1rabNYIzKw6nkEWBmJuzaL8TqS0SniIOvd1AzYp/
WRviRYnnENKjOs5IF28FA5Y6X0o1s0AfoDq8G/RZBF4x/2kHUhzLFlfbPGdzoHHv
zHrywCsQjBg++sA/+Mw+OdXSaxmQDI/S0YI7/GGCvx1p9407jO9aUPDr5bD99jxa
5vTcQRJjim/XYeyZMVQG2fmUoee/K0GE8v97PFn0qnyGfgM5n6nV3BDG774xwoM=
=lrUx
-----END PGP SIGNATURE-----



  reply	other threads:[~2012-01-30 21:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.1.1327683602.12686.lttng-dev@lists.lttng.org>
2012-01-27 18:41 ` [lttng-dev] [PATCH] lttng-tools lib/lttng-ctl/lttng-ctl.c : Document return values and more Thibault, Daniel
2012-01-27 19:46   ` David Goulet
2012-01-27 20:49     ` [lttng-dev] [PATCH] [RESUBMISSION] " Thibault, Daniel
2012-01-30 18:11       ` David Goulet
2012-01-30 18:52         ` Thibault, Daniel
2012-01-30 20:27           ` Alexandre Montplaisir
2012-01-30 21:12             ` [lttng-dev] git: vs http: Thibault, Daniel
2012-01-30 20:27         ` [lttng-dev] [PATCH] lttng-tools Catching up on miscellaneous string and comment fixes (from 5c73c59) Thibault, Daniel
2012-01-30 21:02           ` David Goulet
2012-01-30 20:31         ` [lttng-dev] [PATCH] lttng-tools add_context.c : Fixing memory leaks Thibault, Daniel
2012-01-30 21:18           ` David Goulet [this message]
2012-01-30 21:39             ` Thibault, Daniel
2012-01-30 21:44               ` David Goulet
2012-01-30 21:58             ` Thibault, Daniel
2012-01-30 22:05               ` David Goulet
2012-01-30 20:58         ` [lttng-dev] [PATCH] lttng-tools lttng-ctl, calibrate and create : Document return values Thibault, Daniel
2012-01-30 21:04         ` [lttng-dev] [PATCH] lttng-tools : create.c : Simplify create_session() Thibault, Daniel
2012-01-30 21:26         ` [lttng-dev] [PATCH] Rewrites lttng-ctl's set_session_daemon_path(), fix snprintf() return value tests so the code works with both GNU C < 2.1 and >= 2.1 Thibault, Daniel
2012-01-30 21:35           ` David Goulet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F27091A.80606@polymtl.ca \
    --to=david.goulet@polymtl.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox