@@ -777,7 +777,6 @@ PHPAPI zend_ulong mysqlnd_cset_escape_quotes(const MYSQLND_CHARSET * const cset,
777
777
const char * newstr_s = newstr ;
778
778
const char * newstr_e = newstr + 2 * escapestr_len ;
779
779
const char * end = escapestr + escapestr_len ;
780
- bool escape_overflow = FALSE;
781
780
782
781
DBG_ENTER ("mysqlnd_cset_escape_quotes" );
783
782
@@ -786,12 +785,7 @@ PHPAPI zend_ulong mysqlnd_cset_escape_quotes(const MYSQLND_CHARSET * const cset,
786
785
/* check unicode characters */
787
786
788
787
if (cset -> char_maxlen > 1 && (len = cset -> mb_valid (escapestr , end ))) {
789
-
790
- /* check possible overflow */
791
- if ((newstr + len ) > newstr_e ) {
792
- escape_overflow = TRUE;
793
- break ;
794
- }
788
+ ZEND_ASSERT (newstr + len <= newstr_e );
795
789
/* copy mb char without escaping it */
796
790
while (len -- ) {
797
791
* newstr ++ = * escapestr ++ ;
@@ -800,25 +794,16 @@ PHPAPI zend_ulong mysqlnd_cset_escape_quotes(const MYSQLND_CHARSET * const cset,
800
794
continue ;
801
795
}
802
796
if (* escapestr == '\'' ) {
803
- if (newstr + 2 > newstr_e ) {
804
- escape_overflow = TRUE;
805
- break ;
806
- }
797
+ ZEND_ASSERT (newstr + 2 <= newstr_e );
807
798
* newstr ++ = '\'' ;
808
799
* newstr ++ = '\'' ;
809
800
} else {
810
- if (newstr + 1 > newstr_e ) {
811
- escape_overflow = TRUE;
812
- break ;
813
- }
801
+ ZEND_ASSERT (newstr + 1 <= newstr_e );
814
802
* newstr ++ = * escapestr ;
815
803
}
816
804
}
817
805
* newstr = '\0' ;
818
806
819
- if (escape_overflow ) {
820
- DBG_RETURN ((zend_ulong )~0 );
821
- }
822
807
DBG_RETURN ((zend_ulong )(newstr - newstr_s ));
823
808
}
824
809
/* }}} */
@@ -831,7 +816,6 @@ PHPAPI zend_ulong mysqlnd_cset_escape_slashes(const MYSQLND_CHARSET * const cset
831
816
const char * newstr_s = newstr ;
832
817
const char * newstr_e = newstr + 2 * escapestr_len ;
833
818
const char * end = escapestr + escapestr_len ;
834
- bool escape_overflow = FALSE;
835
819
836
820
DBG_ENTER ("mysqlnd_cset_escape_slashes" );
837
821
DBG_INF_FMT ("charset=%s" , cset -> name );
@@ -845,11 +829,7 @@ PHPAPI zend_ulong mysqlnd_cset_escape_slashes(const MYSQLND_CHARSET * const cset
845
829
if (cset -> char_maxlen > 1 && (* ((zend_uchar * ) escapestr ) > 0x80 || cset -> char_minlen > 1 )) {
846
830
unsigned int len = cset -> mb_valid (escapestr , end );
847
831
if (len ) {
848
- /* check possible overflow */
849
- if ((newstr + len ) > newstr_e ) {
850
- escape_overflow = TRUE;
851
- break ;
852
- }
832
+ ZEND_ASSERT (newstr + len <= newstr_e );
853
833
/* copy mb char without escaping it */
854
834
while (len -- ) {
855
835
* newstr ++ = * escapestr ++ ;
@@ -882,27 +862,18 @@ PHPAPI zend_ulong mysqlnd_cset_escape_slashes(const MYSQLND_CHARSET * const cset
882
862
}
883
863
}
884
864
if (esc ) {
885
- if (newstr + 2 > newstr_e ) {
886
- escape_overflow = TRUE;
887
- break ;
888
- }
865
+ ZEND_ASSERT (newstr + 2 <= newstr_e );
889
866
/* copy escaped character */
890
867
* newstr ++ = '\\' ;
891
868
* newstr ++ = esc ;
892
869
} else {
893
- if (newstr + 1 > newstr_e ) {
894
- escape_overflow = TRUE;
895
- break ;
896
- }
870
+ ZEND_ASSERT (newstr + 1 <= newstr_e );
897
871
/* copy non escaped character */
898
872
* newstr ++ = * escapestr ;
899
873
}
900
874
}
901
875
* newstr = '\0' ;
902
876
903
- if (escape_overflow ) {
904
- DBG_RETURN ((zend_ulong )~0 );
905
- }
906
877
DBG_RETURN ((zend_ulong )(newstr - newstr_s ));
907
878
}
908
879
/* }}} */
0 commit comments