freebsd-ports/databases/php4-dba/files/patch-fix-dba_replace-truncation
Pav Lucistnik a85d0d8658 - Fix bug when dba_replace() will truncate INI file when it was asked to
replace a 52 non-existent key.

PR:		ports/129459
Submitted by:	Eygene Ryabinkin <rea-fbsd@codelabs.ru>
Reviewed by:	maintainer timeout (ale; 3 months)
Security:	http://www.securityfocus.com/archive/1/498746/30/0/threaded
2009-03-24 17:02:45 +00:00

17 lines
657 B
Text

Patch that fixes dba_replace() file truncation issue
Adopted from: http://cvs.php.net/viewvc.cgi/php-src/ext/dba/libinifile/inifile.c?r1=1.14.2.1.2.5&r2=1.14.2.1.2.4&view=patch
--- libinifile/inifile.c 2007/12/31 07:20:05 1.14.2.1.2.4
+++ libinifile/inifile.c 2008/11/13 18:22:23 1.14.2.1.2.5
@@ -508,7 +508,9 @@
/* 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) {