[PATCH weston v3 08/36] libweston: strdup head make, model, serial_number
Quentin Glidic
sardemff7+wayland at sardemff7.net
Tue Oct 31 12:33:17 UTC 2017
On 10/31/17 12:48 PM, Pekka Paalanen wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>
> 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 <pekka.paalanen at collabora.co.uk>
Straightforward:
Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>
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
More information about the wayland-devel
mailing list