]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix segmentation fault with gdk_monitor_get_model (Bug#35259)
authorAlexander Gramiak <agrambot@gmail.com>
Sat, 13 Apr 2019 22:05:21 +0000 (16:05 -0600)
committerAlexander Gramiak <agrambot@gmail.com>
Sat, 13 Apr 2019 22:14:47 +0000 (16:14 -0600)
* src/frame.c (free_monitors): Check if NULL before freeing.

* src/xfns.c: (x-display-monitor-attributes-list): Check if NULL
before copying.

src/frame.c
src/xfns.c

index 192ef4244fbe3afde385efeb8d1afb8be30b5eae..22a3996af7f84414ffb9e27746ae84ee3686e248 100644 (file)
@@ -5670,7 +5670,8 @@ free_monitors (struct MonitorInfo *monitors, int n_monitors)
 {
   int i;
   for (i = 0; i < n_monitors; ++i)
-    xfree (monitors[i].name);
+    if (monitors[i].name)
+      xfree (monitors[i].name);
   xfree (monitors);
 }
 # endif
index 13f66f07183a47ae787d313f1e1ab82779ae7b3a..dd1d8993f5e7753ee3ed1d188e6d820c941d3465 100644 (file)
@@ -5030,7 +5030,8 @@ 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));
+      if (gdk_monitor_get_model (monitor))
+        mi->name = xstrdup (gdk_monitor_get_model (monitor));
 #elif GTK_CHECK_VERSION (2, 14, 0)
       mi->name = gdk_screen_get_monitor_plug_name (gscreen, i);
 #endif