report error code
diff --git a/lib/picotls.c b/lib/picotls.c
index a3f657d..aa37f47 100644
--- a/lib/picotls.c
+++ b/lib/picotls.c
@@ -1117,8 +1117,10 @@
         goto Exit;
 
     /* copy public_name */
-    if ((ech->client.public_name = malloc(decoded->public_name.len + 1)) == NULL)
+    if ((ech->client.public_name = malloc(decoded->public_name.len + 1)) == NULL) {
+        ret = PTLS_ERROR_NO_MEMORY;
         goto Exit;
+    }
     memcpy(ech->client.public_name, decoded->public_name.base, decoded->public_name.len);
     ech->client.public_name[decoded->public_name.len] = '\0';