diff options
| author | Sascha Schumann <sas@php.net> | 2000-11-03 12:00:49 +0000 |
|---|---|---|
| committer | Sascha Schumann <sas@php.net> | 2000-11-03 12:00:49 +0000 |
| commit | 0feb2a21e5d4c3f6466e78cd6509076e41b45d37 (patch) | |
| tree | 4fc6753ee7e2ef2e772232656349e8d7e9626686 /ext/session/mod_mm.c | |
| parent | b4ce4e26340e9ef7effb3a3b1f7610d01827d185 (diff) | |
| download | php-git-0feb2a21e5d4c3f6466e78cd6509076e41b45d37.tar.gz | |
Add some additional checks
Submitted by: mookid@sigent.ru (Mikhail Zabaluev)
Diffstat (limited to 'ext/session/mod_mm.c')
| -rw-r--r-- | ext/session/mod_mm.c | 21 |
1 files 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) |
