diff options
Diffstat (limited to 'drivers/tty/vt/consolemap.c')
-rw-r--r-- | drivers/tty/vt/consolemap.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c index 610b720d3b91..59b25e039968 100644 --- a/drivers/tty/vt/consolemap.c +++ b/drivers/tty/vt/consolemap.c | |||
@@ -539,6 +539,12 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list) | |||
539 | 539 | ||
540 | /* Save original vc_unipagdir_loc in case we allocate a new one */ | 540 | /* Save original vc_unipagdir_loc in case we allocate a new one */ |
541 | p = *vc->vc_uni_pagedir_loc; | 541 | p = *vc->vc_uni_pagedir_loc; |
542 | |||
543 | if (!p) { | ||
544 | err = -EINVAL; | ||
545 | |||
546 | goto out_unlock; | ||
547 | } | ||
542 | 548 | ||
543 | if (p->refcount > 1) { | 549 | if (p->refcount > 1) { |
544 | int j, k; | 550 | int j, k; |
@@ -623,6 +629,7 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list) | |||
623 | set_inverse_transl(vc, p, i); /* Update inverse translations */ | 629 | set_inverse_transl(vc, p, i); /* Update inverse translations */ |
624 | set_inverse_trans_unicode(vc, p); | 630 | set_inverse_trans_unicode(vc, p); |
625 | 631 | ||
632 | out_unlock: | ||
626 | console_unlock(); | 633 | console_unlock(); |
627 | return err; | 634 | return err; |
628 | } | 635 | } |