handle malloc failure
diff --git a/lib/picotls.c b/lib/picotls.c
index 764befa..f74fd28 100644
--- a/lib/picotls.c
+++ b/lib/picotls.c
@@ -2481,7 +2481,10 @@
default:
if (should_collect_unknown_extension(tls, properties, type)) {
if (unknown_extensions == &no_unknown_extensions) {
- unknown_extensions = malloc(sizeof(*unknown_extensions) * (MAX_UNKNOWN_EXTENSIONS + 1));
+ if ((unknown_extensions = malloc(sizeof(*unknown_extensions) * (MAX_UNKNOWN_EXTENSIONS + 1))) == NULL) {
+ ret = PTLS_ERROR_NO_MEMORY;
+ goto Exit;
+ }
unknown_extensions[0].type = UINT16_MAX;
}
if ((ret = collect_unknown_extension(tls, type, src, end, unknown_extensions)) != 0)