Subject: Re: bug#35204: 27.0.50; Crash on Cygwin

From: Eli Zaretskii <[email-masked]>
Date: Fri, 12 Apr 2019 18:15:40 +0300

> From: Ken Brown <[email-masked]>
> CC: "[email-masked]" <[email-masked]>
> Date: Fri, 12 Apr 2019 14:54:21 +0000
> 
> I can replicate the crash on my system, but reverting only a tiny part of the 
> commits in question seems to fix it, in the sense that I can successfully 
> evaluate x-display-monitor-attributes-list:
> 
> diff --git a/src/xfns.c b/src/xfns.c
> index 13f66f0718..3e4d037716 100644
> --- a/src/xfns.c
> +++ b/src/xfns.c
> @@ -5030,7 +5030,7 @@ Internal use only, use `display-monitor-attributes-list' 
> instead.  */)
>         mi->mm_height = height_mm;
> 
>   #if GTK_CHECK_VERSION (3, 22, 0)
> -      mi->name = xstrdup (gdk_monitor_get_model (monitor));
> +      mi->name = g_strdup (gdk_monitor_get_model (monitor));
>   #elif GTK_CHECK_VERSION (2, 14, 0)
>         mi->name = gdk_screen_get_monitor_plug_name (gscreen, i);
>   #endif
> 
> I don't know enough about GTK to know why this fixes it or why no one else has 
> reported the problem.  It's hard to see why this would be specific to Cygwin.

We release storage of mi->name (in free_monitors) by calling xfree, so
I'm surprised g_strdup is right here, as that is documented to need
g_free instead.  I wonder what am I missing.