** Description changed:

+ [ Impact ]
+ 
  There's an infinite recursion in MIME resolution bug which affects
  processes using gio to resolve certain MIME types.  In my case, tracker-
  miner-fs-3 has been crashing in a loop for weeks due to this issue.
+ 
+ This affects any program that attempts to resolve a "recursive" MIME
+ type using glib.
  
  I reported the issue to the GLib maintainers here:
  https://gitlab.gnome.org/GNOME/glib/-/issues/3601
  
  The fix is given here: 
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3714
  The backport to 2.78 is here: 
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3718
  
- I'm requesting the fix be backported into ubuntu.  Thank you for your
- consideration!
+ [ Test Plan ]
  
- ➜  ~ lsb_release -rd
- Description:  Pop!_OS 22.04 LTS
- Release:      22.04
+ 1. Install the mime file from the attachment with:
+    $ mkdir -p ~/.local/share/mime/packages
+    $ wget https://launchpadlibrarian.net/790257958/js-test.xml -O 
~/.local/share/mime/packages/js-test.xml
+    $ update-mime-database ~/.local/share/mime
+ 2. Create a javascript file:
+    $ echo "{}" > ~/foo.js
+ 3. Try to open the file:
+    $ xdg-open ~/foo.js
+ 4. Verify that the file was opened in your default text editor for JavaScript
+ 5. Verify that the program did not crash
  
- ➜  ~ apt-cache policy libglib2.0-0
- libglib2.0-0:
-   Installed: 2.72.4-0ubuntu2.4
-   Candidate: 2.72.4-0ubuntu2.4
-   Version table:
-  *** 2.72.4-0ubuntu2.4 500
-         500 http://apt.pop-os.org/ubuntu jammy-security/main amd64 Packages
-         500 http://apt.pop-os.org/ubuntu jammy-updates/main amd64 Packages
-         100 /var/lib/dpkg/status
-      2.72.1-1 500
-         500 http://apt.pop-os.org/ubuntu jammy/main amd64 Packages
+ 6. Open the "Files" app
+ 7. Navigate to the Home directory
+ 8. Right-click "foo.js"
+ 9. Verify that Nautilus did not crash
+ 10. Click "Open With Other Application"
+ 11. Verify that the dialog says "Opening JavaScript program" files
+ 
+ To cleanup the created files, you may run these commands:
+    $ rm ~/.local/share/mime/packages/js-test.xml
+    $ update-mime-database ~/.local/share/mime
+    $ rm ~/foo.js
+ 
+ [ Where problems could occur ]
+ 
+ The patch will not affect the behaviour of the MIME type resolver except 
detecting and avoiding infinite subclassing for buggy recursive types.
+ The same patch is in place in all newer Ubuntu versions without known 
side-effects.
+ Problems could manifest with file-associations not being honoured in case the 
MIME type resolver is broken (which is verified in the test plan), or with 
crashes similar to the ones here reported in the patch is inconclusive.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2097496

Title:
  libglib: Crash due to infinite recursion in MIME subclassing

To manage notifications about this bug go to:
https://bugs.launchpad.net/glib/+bug/2097496/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to