the only plausible case that an endpoint would receive an encrypted record no larger than 256 bytes is when the conveyed message is Finished or when resumption succeeds. However, in both of these cases, crypto is going to be a lot heavier, dwarfing this optimization
diff --git a/lib/picotls.c b/lib/picotls.c
index 36fe4db..e79d072 100644
--- a/lib/picotls.c
+++ b/lib/picotls.c
@@ -4754,9 +4754,8 @@
 
     const uint8_t *src = input, *const src_end = src + *inlen;
     ptls_buffer_t decryptbuf;
-    uint8_t decryptbuf_small[256];
 
-    ptls_buffer_init(&decryptbuf, decryptbuf_small, sizeof(decryptbuf_small));
+    ptls_buffer_init(&decryptbuf, "", 0);
 
     /* perform handhake until completion or until all the input has been swallowed */
     ret = PTLS_ERROR_IN_PROGRESS;