-----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 <[email protected]>
> 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 <[email protected]>
> 
> 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-----

_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to