Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[9.x] Fix Str::Mask() for repeating chars #42295

Merged
merged 1 commit into from
May 9, 2022
Merged

[9.x] Fix Str::Mask() for repeating chars #42295

merged 1 commit into from
May 9, 2022

Conversation

sjokkateer
Copy link
Contributor

@sjokkateer sjokkateer commented May 7, 2022

Currently Str::mask() does not correctly deal with repeating characters in the $string argument.
One such case is: Str::mask('maan@email.com', '*', 2, 1) which, before this PR would return the string: 'm*an@email.com'.
The reason for this behaviour is because in Str::mask() L#498 a call to mb_strpos is made with $segment as $needle, where $segment would equal 'a'. This would return the numeric position of the first occurence, which would equal 1 setting $start equal to the substring 'm' and $end to 'an@email.com'.

After this pull request the same test case results in the string 'ma*n@email.com' while also passing all the original test cases.

@sjokkateer sjokkateer changed the title [9.x] Fix Str::Mask() for consecutively repeating chars [9.x] Fix Str::Mask() for repeating chars May 7, 2022
- Add some additional test cases to verify behaviour for
  more than 2 repeating characters.
- Add some cases for testing the masking from the start of
  the string, before the start of the string and end of string.
@taylorotwell taylorotwell merged commit a917528 into laravel:9.x May 9, 2022
BrandonSurowiec pushed a commit to BrandonSurowiec/framework that referenced this pull request Jun 26, 2022
- Add some additional test cases to verify behaviour for
  more than 2 repeating characters.
- Add some cases for testing the masking from the start of
  the string, before the start of the string and end of string.

(cherry picked from commit a917528)
taylorotwell pushed a commit that referenced this pull request Jun 27, 2022
- Add some additional test cases to verify behaviour for
  more than 2 repeating characters.
- Add some cases for testing the masking from the start of
  the string, before the start of the string and end of string.

(cherry picked from commit a917528)

Co-authored-by: Remy Bos <27890746+sjokkateer@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants