[PATCH] xwayland: Check return of xcb_get_property_reply() before deref

Bryce Harrington bryce at osg.samsung.com
Fri Jul 10 18:09:57 PDT 2015


On Fri, Jul 10, 2015 at 10:50:43AM +0200, Marek Chalupa wrote:
> 
> 
> On 07/10/2015 06:30 AM, Bryce Harrington wrote:
> > From the man pages it appears this routine can return NULL on certain
> >error conditions.
> >
> >Suggested by Marek Chalupa
> >
> >Signed-off-by: Bryce Harrington <bryce at osg.samsung.com>
> >---
> >  xwayland/selection.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> >diff --git a/xwayland/selection.c b/xwayland/selection.c
> >index 451b915..2f60c0e 100644
> >--- a/xwayland/selection.c
> >+++ b/xwayland/selection.c
> >@@ -111,6 +111,8 @@ weston_wm_get_incr_chunk(struct weston_wm *wm)
> >  				  0x1fffffff /* length */);
> >
> >  	reply = xcb_get_property_reply(wm->conn, cookie, NULL);
> >+	if (reply == NULL)
> >+		return;
> >
> >  	dump_property(wm, wm->atom.wl_selection, reply);
> >
> >@@ -184,6 +186,8 @@ weston_wm_get_selection_targets(struct weston_wm *wm)
> >  				  4096 /* length */);
> >
> >  	reply = xcb_get_property_reply(wm->conn, cookie, NULL);
> >+	if (reply == NULL)
> >+		return;
> >
> >  	dump_property(wm, wm->atom.wl_selection, reply);
> >
> >@@ -236,6 +240,8 @@ weston_wm_get_selection_data(struct weston_wm *wm)
> >  				  0x1fffffff /* length */);
> >
> >  	reply = xcb_get_property_reply(wm->conn, cookie, NULL);
> >+	if (reply == NULL)
> >+		return;
> >
> >  	if (reply->type == wm->atom.incr) {
> >  		dump_property(wm, wm->atom.wl_selection, reply);
> >
> 
> Maybe we could leave dump_property before the check and return,
> because dump_property allows reply to be NULL and so user would know
> where the selection failed.
> Looking into the code, when making this change it would be nice to
> refactor the code a little bit (e.g. line 240 and 244).
> 
> Is it better to follow-up or squash it into this patch?

I'll do it as followup.

> Reviewed-by: Marek Chalupa <mchqwerty at gmail.com>

Thanks, pushed:

To ssh://git.freedesktop.org/git/wayland/weston
   cf7d95a..b2d79d5  master -> master

 
> Cheers,
> Marek


More information about the wayland-devel mailing list