Revert "vt: minor cleanup to vc_translate_unicode()"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Apr 2025 09:21:26 +0000 (11:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Apr 2025 09:21:26 +0000 (11:21 +0200)
This reverts commit 74045f6658f11241a09d93404d79828cc99e94dc.

A new version of the series was submitted, so it's easier to revert the
old one and add the new one due to the changes invovled.

Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Jiri Slaby <jirislaby@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vt.c

index b5f3c8a818ed3aa3b3422279fb6408371bcfe635..f5642b3038e4dd81b9fabfa92cbe4e2d81317bf9 100644 (file)
@@ -2817,7 +2817,7 @@ static int vc_translate_unicode(struct vc_data *vc, int c, bool *rescan)
        if ((c & 0xc0) == 0x80) {
                /* Unexpected continuation byte? */
                if (!vc->vc_utf_count)
-                       goto bad_sequence;
+                       return 0xfffd;
 
                vc->vc_utf_char = (vc->vc_utf_char << 6) | (c & 0x3f);
                vc->vc_npar++;
@@ -2829,17 +2829,17 @@ static int vc_translate_unicode(struct vc_data *vc, int c, bool *rescan)
                /* Reject overlong sequences */
                if (c <= utf8_length_changes[vc->vc_npar - 1] ||
                                c > utf8_length_changes[vc->vc_npar])
-                       goto bad_sequence;
+                       return 0xfffd;
 
                return vc_sanitize_unicode(c);
        }
 
        /* Single ASCII byte or first byte of a sequence received */
        if (vc->vc_utf_count) {
-               /* A continuation byte was expected */
+               /* Continuation byte expected */
                *rescan = true;
                vc->vc_utf_count = 0;
-               goto bad_sequence;
+               return 0xfffd;
        }
 
        /* Nothing to do if an ASCII byte was received */
@@ -2858,14 +2858,11 @@ static int vc_translate_unicode(struct vc_data *vc, int c, bool *rescan)
                vc->vc_utf_count = 3;
                vc->vc_utf_char = (c & 0x07);
        } else {
-               goto bad_sequence;
+               return 0xfffd;
        }
 
 need_more_bytes:
        return -1;
-
-bad_sequence:
-       return 0xfffd;
 }
 
 static int vc_translate(struct vc_data *vc, int *c, bool *rescan)