fix stuff that MSVC does not like
diff --git a/t/hpke.c b/t/hpke.c
index 0330064..aa153f9 100644
--- a/t/hpke.c
+++ b/t/hpke.c
@@ -169,7 +169,12 @@
     for (ptls_hpke_kem_t **kem = all_kems; *kem != NULL; ++kem) {
         for (ptls_hpke_cipher_suite_t **cipher = all_ciphers; *cipher != NULL; ++cipher) {
             char namebuf[64];
+#ifdef _WIN32
+            (void)sprintf_s(namebuf, sizeof(namebuf), "%s-%s/%s-%s", (*kem)->keyex->name, (*kem)->hash->name,
+                (*cipher)->hash->name, (*cipher)->aead->name);
+#else
             sprintf(namebuf, "%s-%s/%s-%s", (*kem)->keyex->name, (*kem)->hash->name, (*cipher)->hash->name, (*cipher)->aead->name);
+#endif
             test_kem = *kem;
             test_cipher = *cipher;
             subtest(namebuf, test_one_hpke);
diff --git a/t/picotls.c b/t/picotls.c
index 127481e..f618664 100644
--- a/t/picotls.c
+++ b/t/picotls.c
@@ -548,7 +548,7 @@
     do {                                                                                                                           \
         const uint8_t *src = encoded_inner;                                                                                        \
         buf.off = 0;                                                                                                               \
-        ok(rebuild_ch_inner_extensions(&buf, &src, encoded_inner + sizeof(encoded_inner), outer, outer + sizeof(outer)) ==         \
+        ok(rebuild_ch_inner_extensions(&buf, &src, encoded_inner + sizeof(encoded_inner), outer, outer + sizeof(outer) - 1) ==     \
            _expected_err);                                                                                                         \
         if (_expected_err == 0) {                                                                                                  \
             ok(src == encoded_inner + sizeof(encoded_inner));                                                                      \
@@ -558,14 +558,15 @@
     } while (0)
 
     { /* replace none */
-        static const uint8_t encoded_inner[] = {0x00, 0x09, 0x12, 0x34, 0x00, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f}, outer[] = {},
+        static const uint8_t encoded_inner[] = {0x00, 0x09, 0x12, 0x34, 0x00, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f},
+                             outer[] = { 0 },
                              expected[] = {0x00, 0x09, 0x12, 0x34, 0x00, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f};
         TEST(0);
     }
 
     { /* replace one */
         static const uint8_t encoded_inner[] = {0x00, 0x07, 0xfd, 0x00, 0x00, 0x03, 0x02, 0x00, 0x01},
-                             outer[] = {0x00, 0x01, 0x00, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f},
+                             outer[] = {0x00, 0x01, 0x00, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0},
                              expected[] = {0x00, 0x09, 0x00, 0x01, 0x00, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f};
         TEST(0);
     }
@@ -574,7 +575,7 @@
         static const uint8_t encoded_inner[] = {0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x31, 0xfd, 0x00, 0x00, 0x05,
                                                 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x05, 0x00, 0x01, 0x35},
                              outer[] = {0x00, 0x01, 0x00, 0x01, 0x41, 0x00, 0x02, 0x00, 0x01, 0x42, 0x00, 0x03, 0x00,
-                                        0x01, 0x43, 0x00, 0x04, 0x00, 0x01, 0x44, 0x00, 0x05, 0x00, 0x01, 0x45},
+                                        0x01, 0x43, 0x00, 0x04, 0x00, 0x01, 0x44, 0x00, 0x05, 0x00, 0x01, 0x45, 0},
                              expected[] = {0x00, 0x14, 0x00, 0x01, 0x00, 0x01, 0x31, 0x00, 0x02, 0x00, 0x01,
                                            0x42, 0x00, 0x04, 0x00, 0x01, 0x44, 0x00, 0x05, 0x00, 0x01, 0x35};
         TEST(0);
@@ -584,7 +585,7 @@
         static const uint8_t encoded_inner[] = {0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x31, 0xfd, 0x00, 0x00, 0x05,
                                                 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x05, 0x00, 0x01, 0x35},
                              outer[] = {0x00, 0x01, 0x00, 0x01, 0x41, 0x00, 0x02, 0x00, 0x01, 0x42, 0x00, 0x03, 0x00,
-                                        0x01, 0x43},
+                                        0x01, 0x43, 0},
                              expected[] = {0x00, 0x14, 0x00, 0x01, 0x00, 0x01, 0x31, 0x00, 0x02, 0x00, 0x01,
                                            0x42, 0x00, 0x04, 0x00, 0x01, 0x44, 0x00, 0x05, 0x00, 0x01, 0x35};
         TEST(PTLS_ALERT_ILLEGAL_PARAMETER);