@@ -492,13 +492,13 @@ static void firebird_handle_closer(pdo_dbh_t *dbh) /* {{{ */
492492 }
493493
494494 if (H -> date_format ) {
495- efree (H -> date_format );
495+ pefree (H -> date_format , dbh -> is_persistent );
496496 }
497497 if (H -> time_format ) {
498- efree (H -> time_format );
498+ pefree (H -> time_format , dbh -> is_persistent );
499499 }
500500 if (H -> timestamp_format ) {
501- efree (H -> timestamp_format );
501+ pefree (H -> timestamp_format , dbh -> is_persistent );
502502 }
503503
504504 pefree (H , dbh -> is_persistent );
@@ -881,9 +881,10 @@ static bool firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *
881881 return false;
882882 }
883883 if (H -> date_format ) {
884- efree (H -> date_format );
884+ pefree (H -> date_format , dbh -> is_persistent );
885+ H -> date_format = NULL ;
885886 }
886- spprintf ( & H -> date_format , 0 , "%s" , ZSTR_VAL (str ));
887+ H -> date_format = pestrndup ( ZSTR_VAL ( str ), ZSTR_LEN (str ), dbh -> is_persistent );
887888 zend_string_release_ex (str , 0 );
888889 }
889890 return true;
@@ -895,9 +896,10 @@ static bool firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *
895896 return false;
896897 }
897898 if (H -> time_format ) {
898- efree (H -> time_format );
899+ pefree (H -> time_format , dbh -> is_persistent );
900+ H -> time_format = NULL ;
899901 }
900- spprintf ( & H -> time_format , 0 , "%s" , ZSTR_VAL (str ));
902+ H -> time_format = pestrndup ( ZSTR_VAL ( str ), ZSTR_LEN (str ), dbh -> is_persistent );
901903 zend_string_release_ex (str , 0 );
902904 }
903905 return true;
@@ -909,9 +911,10 @@ static bool firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *
909911 return false;
910912 }
911913 if (H -> timestamp_format ) {
912- efree (H -> timestamp_format );
914+ pefree (H -> timestamp_format , dbh -> is_persistent );
915+ H -> timestamp_format = NULL ;
913916 }
914- spprintf ( & H -> timestamp_format , 0 , "%s" , ZSTR_VAL (str ));
917+ H -> timestamp_format = pestrndup ( ZSTR_VAL ( str ), ZSTR_LEN (str ), dbh -> is_persistent );
915918 zend_string_release_ex (str , 0 );
916919 }
917920 return true;
0 commit comments