File tree 2 files changed +15
-2
lines changed
2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -215,7 +215,10 @@ bool in_network_ipv4(
215
215
const SocketAddress& ip,
216
216
const SocketAddress& net,
217
217
int prefix) {
218
- uint32_t mask = ((1 << prefix) - 1 ) << (32 - prefix);
218
+ if (prefix == 32 )
219
+ return compare_ipv4 (ip, net) == SocketAddress::CompareResult::SAME;
220
+
221
+ uint32_t mask = ((1ull << prefix) - 1 ) << (32 - prefix);
219
222
220
223
const sockaddr_in* ip_in =
221
224
reinterpret_cast <const sockaddr_in*>(ip.data ());
@@ -293,7 +296,7 @@ bool in_network_ipv6_ipv4(
293
296
if (prefix == 32 )
294
297
return compare_ipv4_ipv6 (net, ip) == SocketAddress::CompareResult::SAME;
295
298
296
- uint32_t m = ((1 << prefix) - 1 ) << (32 - prefix);
299
+ uint32_t m = ((1ull << prefix) - 1 ) << (32 - prefix);
297
300
298
301
const sockaddr_in6* ip_in =
299
302
reinterpret_cast <const sockaddr_in6*>(ip.data ());
Original file line number Diff line number Diff line change @@ -272,3 +272,13 @@ const util = require('util');
272
272
const ret = util . inspect ( blockList , { depth : null } ) ;
273
273
assert ( ret . includes ( 'rules: []' ) ) ;
274
274
}
275
+
276
+ {
277
+ // Test for https://github.com/nodejs/node/issues/43360
278
+ const blocklist = new BlockList ( ) ;
279
+ blocklist . addSubnet ( '1.1.1.1' , 32 , 'ipv4' ) ;
280
+
281
+ assert ( blocklist . check ( '1.1.1.1' ) ) ;
282
+ assert ( ! blocklist . check ( '1.1.1.2' ) ) ;
283
+ assert ( ! blocklist . check ( '2.3.4.5' ) ) ;
284
+ }
You can’t perform that action at this time.
0 commit comments