Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: david.goulet@polymtl.ca (David Goulet)
Subject: [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
Date: Mon, 30 Jan 2012 16:35:16 -0500	[thread overview]
Message-ID: <4F270D14.3010305@polymtl.ca> (raw)
In-Reply-To: <3CA1A65C03C1A34C81BBC6272782E6968089F7@valcartierex01.valcartier.drdc-rddc.gc.ca>

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

Merged thanks!

We did indeed validate the function and it's seems ok and test passes.

If you are changing good portion of code, you can run "make check" to start the
tests and you'll see if you break something. It's not very complete tests but
it's a start.

Cheers
David

On 12-01-30 04:26 PM, Thibault, Daniel wrote:
>    This fifth patch rewrites lttng-ctl's set_session_daemon_path() to avoid duplicating snippets of code.  It also fixes the snprintf return value test so the code works with both GNU C < 2.1 and >= 2.1.  With GNU C < 2.1, snprintf returns -1 if the target buffer is too small; with GNU C >= 2.1, snprintf returns the required size (excluding the closing null) under the same conditions.
> 
>    I do believe it is functionally identical to the version it replaces, but someone should check to make sure.   :-)
> 
> ------------------------------
> From 3d90c8707c362c9ecf0836c25d500c818ba2e2f0 Mon, 30 Jan 2012 16:25:29 -0500
> From: Daniel U. Thibault <daniel.thibault@drdc-rddc.gc.ca>
> Date: Mon, 30 Jan 2012 16:25:15 -0500
> Subject: [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
> 
> Signed-off-by: Daniel U. Thibault <daniel.thibault at drdc-rddc.gc.ca>
> 
> diff --git a/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/lib/lttng-ctl/lttng-ctl.c b/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/lib/lttng-ctl/lttng-ctl.c
> index 537934f..65aa3e3 100644
> --- a/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/lib/lttng-ctl/lttng-ctl.c
> +++ b/lttng2-lttng-tools-2.0-pre18+-5c73c59/src/lib/lttng-ctl/lttng-ctl.c
> @@ -228,35 +228,31 @@
>  		in_tgroup = check_tracing_group(tracing_group);
>  	}
>  
> -	if (uid == 0) {
> -		/* Root */
> +	if ((uid == 0) || in_tgroup) {
>  		copy_string(sessiond_sock_path,
>  				DEFAULT_GLOBAL_CLIENT_UNIX_SOCK,
>  				sizeof(sessiond_sock_path));
> -	} else if (in_tgroup) {
> -		/* Tracing group */
> -		copy_string(sessiond_sock_path,
> -				DEFAULT_GLOBAL_CLIENT_UNIX_SOCK,
> -				sizeof(sessiond_sock_path));
> -
> -		ret = try_connect_sessiond(sessiond_sock_path);
> -		if (ret < 0) {
> -			/* Global session daemon not available */
> -			if (snprintf(sessiond_sock_path, sizeof(sessiond_sock_path),
> -						DEFAULT_HOME_CLIENT_UNIX_SOCK,
> -						getenv("HOME")) < 0) {
> -				return -ENOMEM;
> -			}
>  		}
> -	} else {
> -		/* Not in tracing group and not root, default */
> -		if (snprintf(sessiond_sock_path, PATH_MAX,
> -					DEFAULT_HOME_CLIENT_UNIX_SOCK,
> -					getenv("HOME")) < 0) {
> +	if (uid != 0) {
> +		if (in_tgroup) {
> +			/* Tracing group */
> +			ret = try_connect_sessiond(sessiond_sock_path);
> +			if (ret >= 0) goto end;
> +			/* Global session daemon not available... */
> +		}
> +		/* ...or not in tracing group (and not root), default */
> +		/*
> +		 * With GNU C <  2.1, snprintf returns -1 if the target buffer is too small;
> +		 * With GNU C >= 2.1, snprintf returns the required size (excluding closing null)
> +		 */
> +		ret = snprintf(sessiond_sock_path, sizeof(sessiond_sock_path),
> +				DEFAULT_HOME_CLIENT_UNIX_SOCK,
> +				getenv("HOME"));
> +		if ((ret < 0) || (ret >= sizeof(sessiond_sock_path))) {
>  			return -ENOMEM;
>  		}
>  	}
> -
> +end:
>  	return 0;
>  }
> 
> ------------------------------
> 
> 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)

iQEcBAEBAgAGBQJPJw0UAAoJEELoaioR9I02eSsIAMjz/mUaOmPnK4pt187VIDin
ibA80F8irkILJfZMa1Vx2E4KsvDpAsmeVBlsf72A8otUsMNf72V0T+Vm2sRsXxK4
Xy4Y79QMaMplk1XgYcRZqTEIQear02SxG+rQMIo4R+gZxXWpyy+vC63mQoib67wE
v70w6t8nJ0q9cZasxUKu1iibu5GSGul7aQZi0naPJ2ODiFG6cXVUe0IBqhcF4RYe
7nXOauNLeUAMGuBHRetEzaXy3dr/F6ff1WctP2Smq0pRjKg5FGPg9T09uK2dVJAm
/ZLkcsF0dfK6fwppUG3Lof0M/p+ala/C9R62o0hwkdsPdckTnkfTYsE5J2ClxZw=
=89FN
-----END PGP SIGNATURE-----



      reply	other threads:[~2012-01-30 21:35 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
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 [this message]

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=4F270D14.3010305@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