On 10/31/17 12:48 PM, Pekka Paalanen wrote:
From: Pekka Paalanen <[email protected]>

Duplicate these strings to decouple their lifetime from whatever the
backends used. This should prevent hard to catch use after frees and
such problems in the future.

Signed-off-by: Pekka Paalanen <[email protected]>

Straightforward:
Reviewed-by: Quentin Glidic <[email protected]>

As a nitpick, maybe we could add xstrdup or safe_strdup to handle the NULL case?

Thanks,


---
  libweston/compositor.c | 14 +++++++++++---
  1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/libweston/compositor.c b/libweston/compositor.c
index 1cc5050a..de667cfa 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -4479,6 +4479,10 @@ static void
  weston_head_release(struct weston_head *head)
  {
        weston_head_detach(head);
+
+       free(head->make);
+       free(head->model);
+       free(head->serial_number);
  }
/** Store monitor make, model and serial number
@@ -4500,9 +4504,13 @@ weston_head_set_monitor_strings(struct weston_head *head,
                                const char *model,
                                const char *serialno)
  {
-       head->make = (char *)make;
-       head->model = (char *)model;
-       head->serial_number = (char *)serialno;
+       free(head->make);
+       free(head->model);
+       free(head->serial_number);
+
+       head->make = make ? strdup(make) : NULL;
+       head->model = model ? strdup(model) : NULL;
+       head->serial_number = serialno ? strdup(serialno) : NULL;
  }
/** Store physical image size



--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to