<div dir="ltr">Hi,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On 10 August 2014 12:27, Nils Chr. Brause <span dir="ltr"><<a href="mailto:nilschrbrause@gmail.com" target="_blank">nilschrbrause@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="">On Sat, Aug 09, 2014 at 09:25:04AM -0400, Jasper St. Pierre wrote:<br>
><br>
> I'm not a fan of this patch because it does a memset, and then a few lines<br>
> later, explicitly sets pointers to NULL. If you want a memset, you should<br>
> also remove the explicit NULL sets.<br>
><br>
<br>
</div>I agree. Here a new patch:<br>
<br>
>From 685959fb80e6a1b10b2230efb331996bc38838ed Mon Sep 17 00:00:00 2001<br>
From: "Nils Chr. Brause" <<a href="mailto:nilschrbrause@googlemail.com">nilschrbrause@googlemail.com</a>><br>
Date: Fri, 8 Aug 2014 18:06:16 +0200<br>
Subject: [PATCH] wayland-client: Initialize newly created wl_proxys to zero.<br>
<div class=""><br>
Up until now, newly created wl_proxys (with proxy_create or<br>
wl_proxy_create_for_id) are not initialized properly after memory<br>
allocation. The wl_display object in contrast is. To prevent giving<br>
uninitialized data to the user (e.g. user_data) an appropriate memset<br>
</div>has been added. Also, members don't have to be explicitly initialized<br>
with NULL anymore.<br>
<div class=""><br>
Signed-off-by: Nils Chr. Brause <<a href="mailto:nilschrbrause@googlemail.com">nilschrbrause@googlemail.com</a>><br>
---<br>
</div> src/wayland-client.c | 8 ++++----<br>
 1 file changed, 4 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/wayland-client.c b/src/wayland-client.c<br>
index 3e401d3..04f478a 100644<br>
--- a/src/wayland-client.c<br>
+++ b/src/wayland-client.c<br>
@@ -274,9 +274,9 @@ proxy_create(struct wl_proxy *factory, const struct wl_interface *interface)<br>
<div class="">        if (proxy == NULL)<br>
                return NULL;<br>
<br>
+       memset(proxy, 0, sizeof *proxy);<br>
+<br>
        proxy->object.interface = interface;<br>
</div>-       proxy->object.implementation = NULL;<br>
-       proxy->dispatcher = NULL;<br>
        proxy->display = display;<br>
        proxy->queue = factory->queue;<br>
        proxy->flags = 0;<br></blockquote><div><br></div><div>After memset, this line can be removed as well.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

@@ -331,10 +331,10 @@ wl_proxy_create_for_id(struct wl_proxy *factory,<br>
<div class="">        if (proxy == NULL)<br>
                return NULL;<br>
<br>
+       memset(proxy, 0, sizeof *proxy);<br>
+<br>
        proxy->object.interface = interface;<br>
</div>-       proxy->object.implementation = NULL;<br>
        proxy-><a href="http://object.id" target="_blank">object.id</a> = id;<br>
-       proxy->dispatcher = NULL;<br>
        proxy->display = display;<br>
        proxy->queue = factory->queue;<br>
        proxy->flags = 0;<br></blockquote><div><br></div><div>The same.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class=""><div class="h5">--<br>
2.0.4<br>
_______________________________________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
</div></div></blockquote></div><br></div><div class="gmail_extra">With this the path is<br>Reviewed-by: Marek Chalupa <<a href="mailto:mchqwerty@gmail.com">mchqwerty@gmail.com</a>><br><br></div><div class="gmail_extra">
Regards,<br>Marek<br></div></div>