public_name is at least one byte
diff --git a/lib/picotls.c b/lib/picotls.c
index 8754b06..a3f657d 100644
--- a/lib/picotls.c
+++ b/lib/picotls.c
@@ -1038,6 +1038,10 @@
     }
     decoded->max_name_length = *(*src)++;
     ptls_decode_open_block(*src, end, 1, {
+        if (*src == end) {
+            ret = PTLS_ALERT_DECODE_ERROR;
+            goto Exit;
+        }
         decoded->public_name = ptls_iovec_init(*src, end - *src);
         *src = end;
     });