backport ad90b7dd to fix BGO #743412 / RHBZ #1185811

This commit is contained in:
Adam Williamson 2015-02-02 11:57:49 -08:00
parent 59f37ae6c7
commit 90b5961696
2 changed files with 83 additions and 1 deletions

View File

@ -0,0 +1,76 @@
From ad90b7dd2f0eec6c9966e83742e7bfddcea19f76 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Fri, 23 Jan 2015 17:32:21 +0100
Subject: [PATCH 1/6] monitor-manager: Initialize MetaOutput even when we can't
get the EDID
Otherwise we'll crash later when building a MetaConfiguration.
https://bugzilla.gnome.org/show_bug.cgi?id=743412
---
src/backends/meta-monitor-manager.c | 4 ++++
src/backends/native/meta-monitor-manager-kms.c | 7 ++-----
src/backends/x11/meta-monitor-manager-xrandr.c | 7 ++-----
3 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 3f11716..352a182 100644
--- a/src/backends/meta-monitor-manager.c
+++ b/src/backends/meta-monitor-manager.c
@@ -1230,6 +1230,9 @@ meta_output_parse_edid (MetaOutput *meta_output,
MonitorInfo *parsed_edid;
gsize len;
+ if (!edid)
+ goto out;
+
parsed_edid = decode_edid (g_bytes_get_data (edid, &len));
if (parsed_edid)
@@ -1247,6 +1250,7 @@ meta_output_parse_edid (MetaOutput *meta_output,
g_free (parsed_edid);
}
+ out:
if (!meta_output->vendor)
{
meta_output->vendor = g_strdup ("unknown");
diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
index 13709f1..9efba75 100644
--- a/src/backends/native/meta-monitor-manager-kms.c
+++ b/src/backends/native/meta-monitor-manager-kms.c
@@ -512,11 +512,8 @@ meta_monitor_manager_kms_read_current (MetaMonitorManager *manager)
find_properties (manager_kms, output_kms);
edid = read_output_edid (manager_kms, meta_output);
- if (edid)
- {
- meta_output_parse_edid (meta_output, edid);
- g_bytes_unref (edid);
- }
+ meta_output_parse_edid (meta_output, edid);
+ g_bytes_unref (edid);
/* MetaConnectorType matches DRM's connector types */
meta_output->connector_type = (MetaConnectorType) connector->connector_type;
diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c
index 03b4152..d950592 100644
--- a/src/backends/x11/meta-monitor-manager-xrandr.c
+++ b/src/backends/x11/meta-monitor-manager-xrandr.c
@@ -693,11 +693,8 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
meta_output->name = g_strdup (output->name);
edid = read_output_edid (manager_xrandr, meta_output->winsys_id);
- if (edid)
- {
- meta_output_parse_edid (meta_output, edid);
- g_bytes_unref (edid);
- }
+ meta_output_parse_edid (meta_output, edid);
+ g_bytes_unref (edid);
meta_output->width_mm = output->mm_width;
meta_output->height_mm = output->mm_height;
--
2.2.2

View File

@ -2,7 +2,7 @@
Name: mutter
Version: 3.15.4
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Window and compositing manager based on Clutter
Group: User Interface/Desktops
@ -12,6 +12,8 @@ URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/%{name}/3.15/%{name}-%{version}.tar.xz
Patch0: dont-depend-on-unreleased-wayland.patch
# Backport ad90b7dd to fix BGO #743412 / RHBZ #1185811
Patch1: 0001-monitor-manager-Initialize-MetaOutput-even-when-we-c.patch
BuildRequires: clutter-devel >= %{clutter_version}
BuildRequires: pango-devel
@ -95,6 +97,7 @@ the functionality of the installed %{name} package.
%prep
%setup -q
%patch0 -p1 -b .dont-depend-on-unreleased-wayland
%patch1 -p1 -b .metaoutput-initialize
%build
autoreconf -f -i
@ -165,6 +168,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_datadir}/mutter/tests
%changelog
* Mon Feb 02 2015 Adam Williamson <awilliam@redhat.com> - 3.15.4-2
- backport ad90b7dd to fix BGO #743412 / RHBZ #1185811
* Wed Jan 21 2015 Florian Müllner <fmuellner@redhat.com> - 3.15.4-1
- Update to 3.15.4