Bug 1423374
| Summary: | gnome-shell crashes with signal 11 due to NULL value passed to _clutter_input_device_reset_scroll_info() | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Jos Collin <jcollin> |
| Component: | mutter | Assignee: | Carlos Garnacho <cgarnach> |
| Status: | CLOSED ERRATA | QA Contact: | Desktop QE <desktop-qa-list> |
| Severity: | urgent | Docs Contact: | |
| Priority: | urgent | ||
| Version: | 7.2 | CC: | cgarnach, chorn, cww, knoha, mclasen, otaylor, peter.hutterer, qguo, rick.beldin, shane.seymour, stanislav.moravec, tpelka, vanhoof, yuokada |
| Target Milestone: | rc | ||
| Target Release: | 7.3 | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | mutter-3.28.2-2.el7 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2018-10-30 10:19:44 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1420851, 1473733, 1546815, 1571842, 1609081 | ||
|
Description
Jos Collin
2017-02-17 07:14:19 UTC
(In reply to Jos Collin from comment #0) > I'm working on the patch for RHEL 7.2. Please ignore this statement in the above Additional info. @Keigo We have already discussed this via email how to proceed. Hello Owen, Today, we have a bi-weekly meeting with HPE-Japan. In this meeting, we think the code in the clutter doesn't follow an usual practice, NULL check. From gnome developer guide, g_hash_table_lookup() will return NULL if the key is not found. c.f. https://developer.gnome.org/glib/stable/glib-Hash-Tables.html#g-hash-table-lookup ~~~ g_hash_table_lookup () gpointer g_hash_table_lookup (GHashTable *hash_table, gconstpointer key); Looks up a key in a GHashTable. Note that this function cannot distinguish between a key that is not present and one which is present and has the value NULL. If you need this distinction, use g_hash_table_lookup_extended(). Parameters hash_table : a GHashTable key : the key to look up Returns the associated value, or NULL if the key is not found. ~~~ In clutter code, there are so many places which doesn't check whether the pointer is NULL or not. HPE and I think that the code should have NULL check code like fopen(), malloc() in C code to confirm whether the function returns expected pointer or not before pass it to latter part of the code. Current code looks too optimistic regarding the return value of g_has_table_lookup(). Actually, NULL reference check in another part of the function, clutter_device_manager_xi2_translate_event() was merged. c.f. https://bugzilla.gnome.org/review?bug=678439&attachment=216819 So, we think that introducing null check for every g_has_table_lookup() looks usual fix. How do you think about it? Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2018:3140 |