diff options
author | Lars Strojny <lstrojny@php.net> | 2013-01-15 09:30:44 +0100 |
---|---|---|
committer | Lars Strojny <lstrojny@php.net> | 2013-01-15 09:30:44 +0100 |
commit | eb40f73ca0a2a7563fbc95cc22741412e0beb76e (patch) | |
tree | 20dc73418d5266e84f16f65b2a7c23a463f0113b /ext/dba/dba_gdbm.c | |
parent | 6dc80f080ea97c09b36d8a05ec7ec5067f394c01 (diff) | |
download | php-git-eb40f73ca0a2a7563fbc95cc22741412e0beb76e.tar.gz |
Bug #62489: dba_insert not working as expected
Diffstat (limited to 'ext/dba/dba_gdbm.c')
-rw-r--r-- | ext/dba/dba_gdbm.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ext/dba/dba_gdbm.c b/ext/dba/dba_gdbm.c index 7534568d39..47dd576496 100644 --- a/ext/dba/dba_gdbm.c +++ b/ext/dba/dba_gdbm.c @@ -104,11 +104,18 @@ DBA_UPDATE_FUNC(gdbm) gval.dptr = (char *) val; gval.dsize = vallen; - if(gdbm_store(dba->dbf, gkey, gval, - mode == 1 ? GDBM_INSERT : GDBM_REPLACE) == 0) - return SUCCESS; - php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", gdbm_strerror(gdbm_errno)); - return FAILURE; + switch (gdbm_store(dba->dbf, gkey, gval, mode == 1 ? GDBM_INSERT : GDBM_REPLACE)) { + case 0: + return SUCCESS; + case 1: + return FAILURE; + case -1: + php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", gdbm_strerror(gdbm_errno)); + return FAILURE; + default: + php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "Unknown return value"); + return FAILURE; + } } DBA_EXISTS_FUNC(gdbm) |