tty/vt: don't set font mappings on vc not supporting this
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> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>hifive-unleashed-5.1
parent
cd92208f69
commit
9e326f7871
|
@ -539,6 +539,12 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
|
||||||
|
|
||||||
/* Save original vc_unipagdir_loc in case we allocate a new one */
|
/* Save original vc_unipagdir_loc in case we allocate a new one */
|
||||||
p = *vc->vc_uni_pagedir_loc;
|
p = *vc->vc_uni_pagedir_loc;
|
||||||
|
|
||||||
|
if (!p) {
|
||||||
|
err = -EINVAL;
|
||||||
|
|
||||||
|
goto out_unlock;
|
||||||
|
}
|
||||||
|
|
||||||
if (p->refcount > 1) {
|
if (p->refcount > 1) {
|
||||||
int j, k;
|
int j, k;
|
||||||
|
@ -623,6 +629,7 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
|
||||||
set_inverse_transl(vc, p, i); /* Update inverse translations */
|
set_inverse_transl(vc, p, i); /* Update inverse translations */
|
||||||
set_inverse_trans_unicode(vc, p);
|
set_inverse_trans_unicode(vc, p);
|
||||||
|
|
||||||
|
out_unlock:
|
||||||
console_unlock();
|
console_unlock();
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue