| From 9e326f78713a4421fe11afc2ddeac07698fac131 Mon Sep 17 00:00:00 2001 |
| From: Imre Deak <imre.deak@intel.com> |
| Date: Thu, 2 Oct 2014 16:34:31 +0300 |
| Subject: tty/vt: don't set font mappings on vc not supporting this |
| |
| From: Imre Deak <imre.deak@intel.com> |
| |
| commit 9e326f78713a4421fe11afc2ddeac07698fac131 upstream. |
| |
| We can call this function for a dummy console that doesn't support |
| setting the font mapping, which will result in a null ptr BUG. So check |
| for this case and return error for consoles w/o font mapping support. |
| |
| Reference: https://bugzilla.kernel.org/show_bug.cgi?id=59321 |
| Signed-off-by: Imre Deak <imre.deak@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/tty/vt/consolemap.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/drivers/tty/vt/consolemap.c |
| +++ b/drivers/tty/vt/consolemap.c |
| @@ -539,6 +539,12 @@ int con_set_unimap(struct vc_data *vc, u |
| |
| /* Save original vc_unipagdir_loc in case we allocate a new one */ |
| p = *vc->vc_uni_pagedir_loc; |
| + |
| + if (!p) { |
| + err = -EINVAL; |
| + |
| + goto out_unlock; |
| + } |
| |
| if (p->refcount > 1) { |
| int j, k; |
| @@ -623,6 +629,7 @@ int con_set_unimap(struct vc_data *vc, u |
| set_inverse_transl(vc, p, i); /* Update inverse translations */ |
| set_inverse_trans_unicode(vc, p); |
| |
| +out_unlock: |
| console_unlock(); |
| return err; |
| } |