From 0feb2a21e5d4c3f6466e78cd6509076e41b45d37 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Fri, 3 Nov 2000 12:00:49 +0000 Subject: [PATCH] Add some additional checks Submitted by: mookid@sigent.ru (Mikhail Zabaluev) --- ext/session/mod_mm.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/ext/session/mod_mm.c b/ext/session/mod_mm.c index c3e4d5ad06..355c991e7e 100644 --- a/ext/session/mod_mm.c +++ b/ext/session/mod_mm.c @@ -176,8 +176,15 @@ ps_module ps_mod_mm = { static int ps_mm_initialize(ps_mm *data, const char *path) { data->mm = mm_create(0, path); + if (!data->mm) { + return FAILURE; + } data->hash = mm_calloc(data->mm, HASH_SIZE, sizeof(*data->hash)); + if (!data->hash) { + mm_destroy(data->mm); + return FAILURE; + } return SUCCESS; } @@ -200,15 +207,21 @@ static void ps_mm_destroy(ps_mm *data) PHP_GINIT_FUNCTION(ps_mm) { ps_mm_instance = calloc(sizeof(*ps_mm_instance), 1); - ps_mm_initialize(ps_mm_instance, PS_MM_PATH); + if (ps_mm_initialize(ps_mm_instance, PS_MM_PATH) != SUCCESS) { + ps_mm_instance = NULL; + return FAILURE; + } return SUCCESS; } PHP_GSHUTDOWN_FUNCTION(ps_mm) { - ps_mm_destroy(ps_mm_instance); - free(ps_mm_instance); - return SUCCESS; + if (ps_mm_instance) { + ps_mm_destroy(ps_mm_instance); + free(ps_mm_instance); + return SUCCESS; + } + return FAILURE; } PS_OPEN_FUNC(mm) -- 2.50.1