call out decode error if odd-sized
diff --git a/lib/picotls.c b/lib/picotls.c
index abb17b6..e1d0dfd 100644
--- a/lib/picotls.c
+++ b/lib/picotls.c
@@ -3541,6 +3541,10 @@
 
     /* decode and select from ciphersuites */
     ptls_decode_open_block(src, end, 2, {
+        if ((end - src) % 2 != 0) {
+            ret = PTLS_ALERT_DECODE_ERROR;
+            goto Exit;
+        }
         ch->cipher_suites = ptls_iovec_init(src, end - src);
         src = end;
     });