]> granicus.if.org Git - php/commitdiff
MFB: Fixed a bug inside dba_replace() that could cause file truncation with
authorIlia Alshanetsky <iliaa@php.net>
Thu, 13 Nov 2008 18:21:54 +0000 (18:21 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 13 Nov 2008 18:21:54 +0000 (18:21 +0000)
invalid keys

ext/dba/libinifile/inifile.c

index 22f8063f6f560b2f9d5cc974277876acffa7c13d..9a81dd09a127449f6817ef26baf654b346475e2d 100644 (file)
@@ -507,7 +507,9 @@ static int inifile_delete_replace_append(inifile *dba, const key_type *key, cons
        
        /* 5 */
        if (ret == SUCCESS) {
-               ret = inifile_truncate(dba, append ? pos_grp_next : pos_grp_start TSRMLS_CC); /* writes error on fail */
+               if (!value || (key->name && strlen(key->name))) {
+                       ret = inifile_truncate(dba, append ? pos_grp_next : pos_grp_start TSRMLS_CC); /* writes error on fail */
+               }
        }
 
        if (ret == SUCCESS) {