Backported tests for issue #22406.
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index f2ec670..9f3b17a 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -2109,6 +2109,10 @@
         BomTest,
     )
 
+    def test_uu_invalid(self):
+        # Missing "begin" line
+        self.assertRaises(ValueError, codecs.decode, "", "uu-codec")
+
 
 if __name__ == "__main__":
     test_main()
diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py
index 31046b0..51a4fbe 100644
--- a/Lib/test/test_uu.py
+++ b/Lib/test/test_uu.py
@@ -61,6 +61,26 @@
         except uu.Error, e:
             self.assertEqual(str(e), "No valid begin line found in input file")
 
+    def test_garbage_padding(self):
+        # Issue #22406
+        encodedtext = (
+            "begin 644 file\n"
+            # length 1; bits 001100 111111 111111 111111
+            "\x21\x2C\x5F\x5F\x5F\n"
+            "\x20\n"
+            "end\n"
+        )
+        plaintext = "\x33"  # 00110011
+
+        inp = cStringIO.StringIO(encodedtext)
+        out = cStringIO.StringIO()
+        uu.decode(inp, out, quiet=True)
+        self.assertEqual(out.getvalue(), plaintext)
+
+        import codecs
+        decoded = codecs.decode(encodedtext, "uu_codec")
+        self.assertEqual(decoded, plaintext)
+
 class UUStdIOTest(unittest.TestCase):
 
     def setUp(self):