@@ -599,13 +599,13 @@ static void firebird_handle_closer(pdo_dbh_t *dbh) /* {{{ */
599599 }
600600
601601 if (H -> date_format ) {
602- efree (H -> date_format );
602+ pefree (H -> date_format , dbh -> is_persistent );
603603 }
604604 if (H -> time_format ) {
605- efree (H -> time_format );
605+ pefree (H -> time_format , dbh -> is_persistent );
606606 }
607607 if (H -> timestamp_format ) {
608- efree (H -> timestamp_format );
608+ pefree (H -> timestamp_format , dbh -> is_persistent );
609609 }
610610
611611 if (H -> einfo .errmsg ) {
@@ -1091,9 +1091,10 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
10911091 return false;
10921092 }
10931093 if (H -> date_format ) {
1094- efree (H -> date_format );
1094+ pefree (H -> date_format , dbh -> is_persistent );
1095+ H -> date_format = NULL ;
10951096 }
1096- spprintf ( & H -> date_format , 0 , "%s" , ZSTR_VAL (str ));
1097+ H -> date_format = pestrndup ( ZSTR_VAL ( str ), ZSTR_LEN (str ), dbh -> is_persistent );
10971098 zend_string_release_ex (str , 0 );
10981099 }
10991100 return true;
@@ -1105,9 +1106,10 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
11051106 return false;
11061107 }
11071108 if (H -> time_format ) {
1108- efree (H -> time_format );
1109+ pefree (H -> time_format , dbh -> is_persistent );
1110+ H -> time_format = NULL ;
11091111 }
1110- spprintf ( & H -> time_format , 0 , "%s" , ZSTR_VAL (str ));
1112+ H -> time_format = pestrndup ( ZSTR_VAL ( str ), ZSTR_LEN (str ), dbh -> is_persistent );
11111113 zend_string_release_ex (str , 0 );
11121114 }
11131115 return true;
@@ -1119,9 +1121,10 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
11191121 return false;
11201122 }
11211123 if (H -> timestamp_format ) {
1122- efree (H -> timestamp_format );
1124+ pefree (H -> timestamp_format , dbh -> is_persistent );
1125+ H -> timestamp_format = NULL ;
11231126 }
1124- spprintf ( & H -> timestamp_format , 0 , "%s" , ZSTR_VAL (str ));
1127+ H -> timestamp_format = pestrndup ( ZSTR_VAL ( str ), ZSTR_LEN (str ), dbh -> is_persistent );
11251128 zend_string_release_ex (str , 0 );
11261129 }
11271130 return true;
0 commit comments