File tree 2 files changed +33
-2
lines changed
lib/private/Security/Bruteforce
tests/lib/Security/Bruteforce
2 files changed +33
-2
lines changed Original file line number Diff line number Diff line change @@ -177,8 +177,10 @@ private function isIPWhitelisted($ip) {
177
177
$ part = ord ($ addr [(int )($ i /8 )]);
178
178
$ orig = ord ($ ip [(int )($ i /8 )]);
179
179
180
- $ part = $ part & (15 << (1 - ($ i % 2 )));
181
- $ orig = $ orig & (15 << (1 - ($ i % 2 )));
180
+ $ bitmask = 1 << (7 - ($ i % 8 ));
181
+
182
+ $ part = $ part & $ bitmask ;
183
+ $ orig = $ orig & $ bitmask ;
182
184
183
185
if ($ part !== $ orig ) {
184
186
$ valid = false ;
Original file line number Diff line number Diff line change @@ -100,6 +100,27 @@ public function dataIsIPWhitelisted() {
100
100
],
101
101
true ,
102
102
],
103
+ [
104
+ '10.10.10.10 ' ,
105
+ [
106
+ 'whitelist_0 ' => '10.10.10.11/31 ' ,
107
+ ],
108
+ true ,
109
+ ],
110
+ [
111
+ '10.10.10.10 ' ,
112
+ [
113
+ 'whitelist_0 ' => '10.10.10.9/31 ' ,
114
+ ],
115
+ false ,
116
+ ],
117
+ [
118
+ '10.10.10.10 ' ,
119
+ [
120
+ 'whitelist_0 ' => '10.10.10.15/29 ' ,
121
+ ],
122
+ true ,
123
+ ],
103
124
[
104
125
'dead:beef:cafe::1 ' ,
105
126
[
@@ -127,6 +148,14 @@ public function dataIsIPWhitelisted() {
127
148
],
128
149
true ,
129
150
],
151
+ [
152
+ 'dead:beef:cafe::1111 ' ,
153
+ [
154
+ 'whitelist_0 ' => 'dead:beef:cafe::1100/123 ' ,
155
+
156
+ ],
157
+ true ,
158
+ ],
130
159
[
131
160
'invalid ' ,
132
161
[],
You can’t perform that action at this time.
0 commit comments