summaryrefslogtreecommitdiff
path: root/ext/dba/dba.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dba/dba.c')
-rw-r--r--ext/dba/dba.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/dba/dba.c b/ext/dba/dba.c
index f54077b2ba..49b57efad2 100644
--- a/ext/dba/dba.c
+++ b/ext/dba/dba.c
@@ -719,7 +719,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if (!error && lock_mode) {
if (lock_dbf) {
- lock_name = estrdup(info->path);
+ lock_name = Z_STRVAL_PP(args[0]);
} else {
spprintf(&lock_name, 0, "%s.lck", info->path);
if (!strcmp(file_mode, "r")) {
@@ -757,7 +757,9 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
}
}
- efree(lock_name);
+ if (!lock_dbf) {
+ efree(lock_name);
+ }
if (!info->lock.fp) {
dba_close(info TSRMLS_CC);
/* stream operation already wrote an error message */