From 41c028be1988ad160ef2fa6feca4441bb4bca17d Mon Sep 17 00:00:00 2001 From: miod <> Date: Tue, 28 Oct 2014 05:46:56 +0000 Subject: Check the result of sk_*_push() operations for failure. ok doug@ jsing@ --- src/lib/libcrypto/objects/o_names.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/lib/libcrypto/objects') diff --git a/src/lib/libcrypto/objects/o_names.c b/src/lib/libcrypto/objects/o_names.c index 68458a282c..9fa5824890 100644 --- a/src/lib/libcrypto/objects/o_names.c +++ b/src/lib/libcrypto/objects/o_names.c @@ -1,4 +1,4 @@ -/* $OpenBSD: o_names.c,v 1.18 2014/06/12 15:49:30 deraadt Exp $ */ +/* $OpenBSD: o_names.c,v 1.19 2014/10/28 05:46:56 miod Exp $ */ #include #include #include @@ -74,7 +74,11 @@ OBJ_NAME_new_index(unsigned long (*hash_func)(const char *), name_funcs->hash_func = lh_strhash; name_funcs->cmp_func = strcmp; name_funcs->free_func = NULL; - sk_NAME_FUNCS_push(name_funcs_stack, name_funcs); + if (sk_NAME_FUNCS_push(name_funcs_stack, name_funcs) == 0) { + free(name_funcs); + OBJerr(OBJ_F_OBJ_NAME_NEW_INDEX, ERR_R_MALLOC_FAILURE); + return (0); + } } name_funcs = sk_NAME_FUNCS_value(name_funcs_stack, ret); if (hash_func != NULL) -- cgit v1.2.3-55-g6feb