[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#965382: marked as done (Regression: Cinnamon segfault with muffin due to getting refresh rates from xrandr)



Your message dated Tue, 21 Jul 2020 01:18:45 +0000
with message-id <E1jxgvd-000G65-8S@fasolo.debian.org>
and subject line Bug#965382: fixed in muffin 4.6.2-3
has caused the Debian Bug report #965382,
regarding Regression: Cinnamon segfault with muffin due to getting refresh rates from xrandr
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
965382: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=965382
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: muffin
Version: 4.6.2-2
Severity: normal
Tags: patch
X-Debbugs-Cc: itzswirlz2020@outlook.com

I'm going to make this short, simple, and easy

Since Cinnamon 4.0.0 there was a regression that when they got refresh rates
from xrandr, sometimes the output would be null and that would cause other
segfaults.

This is a regression from Cinnamon 4.0.0. To replicate it now in 4.6.6, the
latest release of muffin includes this patch.

To replicate the bug is complicated: turn off a laptop monitor, turn on the
external, something along the lines of that. Read the upstream bug reports and
commit:

https://github.com/linuxmint/cinnamon/issues/9401

https://github.com/linuxmint/muffin/commit/c092579b67febb7e2a49361942f20f78c82f968e

The patch is made from GitHub's commit change-so add the patch attached, fill
in debian/changelog and go.



-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.7.0-1-amd64 (SMP w/1 CPU thread)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages muffin depends on:
ii  libc6               2.31-1
ii  libcairo2           1.16.0-4
ii  libgdk-pixbuf2.0-0  2.40.0+dfsg-5
ii  libglib2.0-0        2.64.4-1
ii  libgtk-3-0          3.24.20-1
ii  libmuffin0          4.6.2-2
ii  libpango-1.0-0      1.44.7-4
ii  libx11-6            2:1.6.9-2+b1
ii  libxcomposite1      1:0.4.5-1
ii  muffin-common       4.6.2-2
ii  zenity              3.32.0-5

Versions of packages muffin recommends:
ii  cinnamon-session [x-session-manager]  4.6.1-2

Versions of packages muffin suggests:
ii  cinnamon-control-center  4.6.1-1
ii  xdg-user-dirs            0.17-2

-- no debconf information
>From c092579b67febb7e2a49361942f20f78c82f968e Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebster@gmail.com>
Date: Sun, 19 Jul 2020 15:04:45 -0400
Subject: [PATCH] screen.c: Check for MetaMonitorInfo being non-null before
 attempting to access it.

The return from find_monitor_with_rect() is usually null (there are
lots of modes usually), but this is never guarded against when collecting
refresh rates.

Example to reproduce: Laptop monitor + external monitor.  Arrange laptop
monitor to the right of the external one.  Using nvidia-450 (confirmed
for me, at least), turn laptop monitor off.  Ignoring horrible lag from
driver, turn the laptop monitor back on (arranging it still to the right
of the external monitor).

regression from:
https://github.com/linuxmint/muffin/commit/1d38120c9ded2578a14cb2e8bf46bb82b3acdc75
---
 src/core/screen.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/core/screen.c b/src/core/screen.c
index a779e0743..5c3d1d96c 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -635,18 +635,22 @@ reload_monitor_infos (MetaScreen *screen)
 
                 crtc = XRRGetCrtcInfo (display->xdisplay, resources, resources->crtcs[i]);
                 info = find_monitor_with_rect (screen, crtc->x, crtc->y, (int)crtc->width, (int)crtc->height);
-                for (j = 0; j < resources->nmode; j++)
+
+                if (info)
                   {
-                    if (resources->modes[j].id == crtc->mode)
-                      info->refresh_rate = (resources->modes[j].dotClock /
-                                            ((float)resources->modes[j].hTotal *
-                                            resources->modes[j].vTotal));
+                    for (j = 0; j < resources->nmode; j++)
+                      {
+                        if (resources->modes[j].id == crtc->mode)
+                          info->refresh_rate = (resources->modes[j].dotClock /
+                                                ((float)resources->modes[j].hTotal *
+                                                resources->modes[j].vTotal));
+                      }
+                    info->output = find_main_output_for_crtc (screen, resources, crtc);
                   }
-                if (info)
-                  info->output = find_main_output_for_crtc (screen, resources, crtc);
 
                 XRRFreeCrtcInfo (crtc);
               }
+
             XRRFreeScreenResources (resources);
           }
       }


--- End Message ---
--- Begin Message ---
Source: muffin
Source-Version: 4.6.2-3
Done: Norbert Preining <norbert@preining.info>

We believe that the bug you reported is fixed in the latest version of
muffin, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 965382@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Norbert Preining <norbert@preining.info> (supplier of updated muffin package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Tue, 21 Jul 2020 09:22:31 +0900
Source: muffin
Architecture: source
Version: 4.6.2-3
Distribution: unstable
Urgency: medium
Maintainer: Debian Cinnamon Team <debian-cinnamon@lists.debian.org>
Changed-By: Norbert Preining <norbert@preining.info>
Closes: 965382
Changes:
 muffin (4.6.2-3) unstable; urgency=medium
 .
   * Fix regression wrt refresh rates from xrandr (Closes: #965382)
Checksums-Sha1:
 2d18e7051eac8746fe1ecad2a2504d5e7aba3e4e 2682 muffin_4.6.2-3.dsc
 73f8d151905185eec6d01241dd3b9c1baf189cba 25564 muffin_4.6.2-3.debian.tar.xz
 325173952dc203644de0bf98ac57eb289f7e4047 18505 muffin_4.6.2-3_source.buildinfo
Checksums-Sha256:
 c9c7b0e6dbdd7a69eabee12ecf89b5c1dc981551e01255201ddb88950e2e594a 2682 muffin_4.6.2-3.dsc
 12b0db130a643d82e5afba76744b430f5075f6bfc39290ca4822fa0ce3a67155 25564 muffin_4.6.2-3.debian.tar.xz
 ebd6eeae6e7bda56492c296710cb65c45e0f860cdbd0167fd10335cd23b17790 18505 muffin_4.6.2-3_source.buildinfo
Files:
 0cdce418c9f79d936ec8b48974870c33 2682 x11 optional muffin_4.6.2-3.dsc
 1dd113e35edd19676964df9354f98f8b 25564 x11 optional muffin_4.6.2-3.debian.tar.xz
 b2e6da7829d1e188202c14d498916d35 18505 x11 optional muffin_4.6.2-3_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEE68ws0vrA2voQX53I2A4JsIcUAGYFAl8WPTgACgkQ2A4JsIcU
AGbloQgArQF0lB93iISxZ2R7w763ar7fdMg0ekhDqT6gtrbOJoFVyfefPvE9fy1v
/CJ73QxZA2XUaF8ginucJKKY5VrJpZY98qsPoBmtLvbjShkvjTjNgCITcAADBA8N
4WVtCtuk0cNDaBQMesZR0FAyp/KdVqEHq5IH2f2bcl+Qe55ZOApmqf+Eyk9QbhR5
ayK6jubB60wXYQzGtrKS/1eIi430J+pGKgwv9JQ+Ccedixx7djaLjZsF/2VvjbHe
M+8uZ5VVWvkBIZ9KlrEGehyULw2AAqAMMW+lVZ4BMuN1U1FQoxW5Etd1yv9ToHfP
bmsRFHyaT8zUpk2aLoz2umVMZ/yE2w==
=79Cp
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: