]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
vt: move vc_saved_screen to within tty allocated judgment
authorEdward Adam Davis <eadavis@qq.com>
Tue, 9 Sep 2025 00:51:22 +0000 (08:51 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Sep 2025 13:58:41 +0000 (15:58 +0200)
Everything starts with the assumption that a tty has been allocated.
Therefore, Move it to within the tty allocation check.

Fixes: 23743ba64709 ("vt: add support for smput/rmput escape codes")
Reported-by: syzbot+f6cb41c144427dc0796a@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=f6cb41c144427dc0796a
Tested-by: syzbot+f6cb41c144427dc0796a@syzkaller.appspotmail.com
Signed-off-by: Edward Adam Davis <eadavis@qq.com>
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/tencent_CAD45DB31906CF890DBB25AB0DED12205D07@qq.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vt.c

index 1d9abcfac4c914a22454038b18982fab255d0694..6e0089b85c2709562bb6b4ebc3574c084a9fc113 100644 (file)
@@ -1341,10 +1341,10 @@ struct vc_data *vc_deallocate(unsigned int currcons)
                vc_uniscr_set(vc, NULL);
                kfree(vc->vc_screenbuf);
                vc_cons[currcons].d = NULL;
-       }
-       if (vc->vc_saved_screen != NULL) {
-               kfree(vc->vc_saved_screen);
-               vc->vc_saved_screen = NULL;
+               if (vc->vc_saved_screen != NULL) {
+                       kfree(vc->vc_saved_screen);
+                       vc->vc_saved_screen = NULL;
+               }
        }
        return vc;
 }