All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH lttng-tools] Cleanup: initialize data to 0
@ 2017-05-08 12:15 Mathieu Desnoyers
  0 siblings, 0 replies; 2+ messages in thread
From: Mathieu Desnoyers @ 2017-05-08 12:15 UTC (permalink / raw)
  To: jgalar; +Cc: lttng-dev

Valgrind catches read of uninitialized data caused by the on-stack
"data" argument which ends up not being fully initialized (it contains a
union).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
---
 src/common/runas.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/common/runas.c b/src/common/runas.c
index 081a3d2..946ea31 100644
--- a/src/common/runas.c
+++ b/src/common/runas.c
@@ -466,6 +466,7 @@ int run_as_mkdir_recursive(const char *path, mode_t mode, uid_t uid, gid_t gid)
 {
 	struct run_as_data data;
 
+	memset(&data, 0, sizeof(data));
 	DBG3("mkdir() recursive %s with mode %d for uid %d and gid %d",
 			path, (int) mode, (int) uid, (int) gid);
 	strncpy(data.u.mkdir.path, path, PATH_MAX - 1);
@@ -479,6 +480,7 @@ int run_as_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid)
 {
 	struct run_as_data data;
 
+	memset(&data, 0, sizeof(data));
 	DBG3("mkdir() %s with mode %d for uid %d and gid %d",
 			path, (int) mode, (int) uid, (int) gid);
 	strncpy(data.u.mkdir.path, path, PATH_MAX - 1);
@@ -492,6 +494,7 @@ int run_as_open(const char *path, int flags, mode_t mode, uid_t uid, gid_t gid)
 {
 	struct run_as_data data;
 
+	memset(&data, 0, sizeof(data));
 	DBG3("open() %s with flags %X mode %d for uid %d and gid %d",
 			path, flags, (int) mode, (int) uid, (int) gid);
 	strncpy(data.u.open.path, path, PATH_MAX - 1);
@@ -506,6 +509,7 @@ int run_as_unlink(const char *path, uid_t uid, gid_t gid)
 {
 	struct run_as_data data;
 
+	memset(&data, 0, sizeof(data));
 	DBG3("unlink() %s with for uid %d and gid %d",
 			path, (int) uid, (int) gid);
 	strncpy(data.u.unlink.path, path, PATH_MAX - 1);
-- 
2.1.4

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH lttng-tools] Cleanup: initialize data to 0
       [not found] <1494245720-8373-1-git-send-email-mathieu.desnoyers@efficios.com>
@ 2017-05-09 12:37 ` Jérémie Galarneau
  0 siblings, 0 replies; 2+ messages in thread
From: Jérémie Galarneau @ 2017-05-09 12:37 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: lttng-dev, Jeremie Galarneau

Merged in master, stable-2.10, stable-2.9 and stable-2.8, thanks!

Jérémie

On 8 May 2017 at 08:15, Mathieu Desnoyers
<mathieu.desnoyers@efficios.com> wrote:
> Valgrind catches read of uninitialized data caused by the on-stack
> "data" argument which ends up not being fully initialized (it contains a
> union).
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> ---
>  src/common/runas.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/src/common/runas.c b/src/common/runas.c
> index 081a3d2..946ea31 100644
> --- a/src/common/runas.c
> +++ b/src/common/runas.c
> @@ -466,6 +466,7 @@ int run_as_mkdir_recursive(const char *path, mode_t mode, uid_t uid, gid_t gid)
>  {
>         struct run_as_data data;
>
> +       memset(&data, 0, sizeof(data));
>         DBG3("mkdir() recursive %s with mode %d for uid %d and gid %d",
>                         path, (int) mode, (int) uid, (int) gid);
>         strncpy(data.u.mkdir.path, path, PATH_MAX - 1);
> @@ -479,6 +480,7 @@ int run_as_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid)
>  {
>         struct run_as_data data;
>
> +       memset(&data, 0, sizeof(data));
>         DBG3("mkdir() %s with mode %d for uid %d and gid %d",
>                         path, (int) mode, (int) uid, (int) gid);
>         strncpy(data.u.mkdir.path, path, PATH_MAX - 1);
> @@ -492,6 +494,7 @@ int run_as_open(const char *path, int flags, mode_t mode, uid_t uid, gid_t gid)
>  {
>         struct run_as_data data;
>
> +       memset(&data, 0, sizeof(data));
>         DBG3("open() %s with flags %X mode %d for uid %d and gid %d",
>                         path, flags, (int) mode, (int) uid, (int) gid);
>         strncpy(data.u.open.path, path, PATH_MAX - 1);
> @@ -506,6 +509,7 @@ int run_as_unlink(const char *path, uid_t uid, gid_t gid)
>  {
>         struct run_as_data data;
>
> +       memset(&data, 0, sizeof(data));
>         DBG3("unlink() %s with for uid %d and gid %d",
>                         path, (int) uid, (int) gid);
>         strncpy(data.u.unlink.path, path, PATH_MAX - 1);
> --
> 2.1.4
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-05-09 12:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-08 12:15 [PATCH lttng-tools] Cleanup: initialize data to 0 Mathieu Desnoyers
     [not found] <1494245720-8373-1-git-send-email-mathieu.desnoyers@efficios.com>
2017-05-09 12:37 ` Jérémie Galarneau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.