Skip to content

Commit ad6a16e

Browse files
committed
Merge pull request #198 from samm-git/php7
check if session was allocated on PS_OPEN_FUNC
2 parents a24e439 + 23db27a commit ad6a16e

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

php_memcached_session.c

+20
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@ PS_OPEN_FUNC(memcached)
277277
PS_CLOSE_FUNC(memcached)
278278
{
279279
memcached_sess *memc_sess = PS_GET_MOD_DATA();
280+
281+
if (!memc_sess) {
282+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session is not allocated, check session.save_path value");
283+
return FAILURE;
284+
}
280285

281286
if (MEMC_G(sess_locking_enabled)) {
282287
php_memc_sess_unlock(memc_sess->memc_sess);
@@ -307,6 +312,11 @@ PS_READ_FUNC(memcached)
307312
memcached_sess *memc_sess = PS_GET_MOD_DATA();
308313
size_t key_length;
309314

315+
if (!memc_sess) {
316+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session is not allocated, check session.save_path value");
317+
return FAILURE;
318+
}
319+
310320
key_length = strlen(MEMC_G(sess_prefix)) + key_len + 5; // prefix + "lock."
311321
if (!key_length || key_length >= MEMCACHED_MAX_KEY) {
312322
php_error_docref(NULL, E_WARNING, "The session id is too long or contains illegal characters");
@@ -339,6 +349,11 @@ PS_WRITE_FUNC(memcached)
339349
memcached_return status;
340350
memcached_sess *memc_sess = PS_GET_MOD_DATA();
341351
size_t key_length;
352+
353+
if (!memc_sess) {
354+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session is not allocated, check session.save_path value");
355+
return FAILURE;
356+
}
342357

343358
key_length = strlen(MEMC_G(sess_prefix)) + key_len + 5; // prefix + "lock."
344359
if (!key_length || key_length >= MEMCACHED_MAX_KEY) {
@@ -371,6 +386,11 @@ PS_DESTROY_FUNC(memcached)
371386
{
372387
memcached_sess *memc_sess = PS_GET_MOD_DATA();
373388

389+
if (!memc_sess) {
390+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session is not allocated, check session.save_path value");
391+
return FAILURE;
392+
}
393+
374394
memcached_delete(memc_sess->memc_sess, key->val, key->len, 0);
375395
if (MEMC_G(sess_locking_enabled)) {
376396
php_memc_sess_unlock(memc_sess->memc_sess);

0 commit comments

Comments
 (0)