Bug 701978

Summary: crash if keyboard geometry not available
Product: [Fedora] Fedora Reporter: Dave Shield <d.t.shield>
Component: metacityAssignee: Owen Taylor <otaylor>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 15CC: ossman, otaylor
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-07 17:39:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Simple fix none

Description Dave Shield 2011-05-04 13:10:36 UTC
Description of problem:

  The Fedora 15 metacity attempts to determine the key
immediately above the Tab key,  by querying the X server
for the keyboard geometry.   If this query fails for any
reason, then metacity ends up dereferencing a null pointer,
and crashes (logging the user out).


Version-Release number of selected component (if applicable):
   2.34.0-1.fc15

NB:  This problem was not present in metacity 2.30 which
   doesn't attempt this query at all.
   (The file 'above-tab-keycode.c' is new with v2.34)


How reproducible:
   Problem experienced when using Hummingbird Exceed
(running under Windows 7), connecting to a Linux server
running Fedora 15

Steps to Reproduce:
1. Log in using the Gnome desktop environment
   (via Windows/Exceed)
  
Actual results:
   "Oh, No!" black error screen

   Application 'metacity.desktop' killed by signal
   App 'metacity.desktop' respawning too quickly
       logged in .xsession-errors file

   Display returns to XDMCP list of available servers


Expected results:
   Gnome desktop environment


Additional info:
   The crash is triggered at line 80 of above-tab-keyboard.c
(geometry = keyboard->geom),  by referencing the 'keyboard'
pointer without checking for it being NULL.
   A simple fix is attached, defaulting to assuming this is
key code XK_grave

This bug has been reported upstream (as Gnome bug #649370)

Comment 1 Dave Shield 2011-05-04 13:11:13 UTC
Created attachment 496786 [details]
Simple fix

Comment 2 Pierre Ossman 2011-06-17 15:23:15 UTC
Also as upstream bug 647777, which is fixed. Backport to F15 please? This bug is rendering F15 unusable here with a portable Xvnc that lacks XKB.

Comment 3 Pierre Ossman 2011-06-20 11:29:27 UTC
I've tested the mentioned two line fix with the package currently in F15 and it seems to solve the issue nicely.

Comment 4 Fedora End Of Life 2012-08-07 17:39:44 UTC
This message is a notice that Fedora 15 is now at end of life. Fedora
has stopped maintaining and issuing updates for Fedora 15. It is
Fedora's policy to close all bug reports from releases that are no
longer maintained. At this time, all open bugs with a Fedora 'version'
of '15' have been closed as WONTFIX.

(Please note: Our normal process is to give advanced warning of this
occurring, but we forgot to do that. A thousand apologies.)

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, feel free to reopen
this bug and simply change the 'version' to a later Fedora version.

Bug Reporter: Thank you for reporting this issue and we are sorry that
we were unable to fix it before Fedora 15 reached end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora, you are encouraged to click on
"Clone This Bug" (top right of this page) and open it against that
version of Fedora.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

The process we are following is described here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping