Fix integer expression error in subnet_bonus parsing
Bug: Line 2557 integer comparison failed
Error: [: 1|0|: integer expression expected
Root cause:
calculate_subnet_bonus() returns 'count|bonus|reason' format
Code was trying to compare full string '1|0|' as integer
Fix:
Parse the pipe-delimited output properly:
- IFS='|' read -r subnet_count subnet_bonus subnet_reason
- Use ${subnet_bonus:-0} for safe integer comparison
- Use subnet_reason instead of hardcoded 'SUBNET_ATTACK'
This matches the pattern used for other intelligence functions
(velocity_data, div_data, timing_result).
This commit is contained in:
@@ -2553,12 +2553,12 @@ monitor_network_attacks() {
|
|||||||
block_reasons="${block_reasons}${div_reason}"
|
block_reasons="${block_reasons}${div_reason}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local subnet_bonus=$(calculate_subnet_bonus "$ip")
|
local subnet_data=$(calculate_subnet_bonus "$ip")
|
||||||
if [ "$subnet_bonus" -gt 0 ]; then
|
IFS='|' read -r subnet_count subnet_bonus subnet_reason <<< "$subnet_data"
|
||||||
|
if [ "${subnet_bonus:-0}" -gt 0 ]; then
|
||||||
score=$((score + subnet_bonus))
|
score=$((score + subnet_bonus))
|
||||||
local context_reason="SUBNET_ATTACK"
|
|
||||||
[ -n "$block_reasons" ] && block_reasons="${block_reasons}+" || block_reasons=""
|
[ -n "$block_reasons" ] && block_reasons="${block_reasons}+" || block_reasons=""
|
||||||
block_reasons="${block_reasons}${context_reason}"
|
block_reasons="${block_reasons}${subnet_reason}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Detect timing patterns
|
# Detect timing patterns
|
||||||
|
|||||||
@@ -2553,12 +2553,12 @@ monitor_network_attacks() {
|
|||||||
block_reasons="${block_reasons}${div_reason}"
|
block_reasons="${block_reasons}${div_reason}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local subnet_bonus=$(calculate_subnet_bonus "$ip")
|
local subnet_data=$(calculate_subnet_bonus "$ip")
|
||||||
if [ "$subnet_bonus" -gt 0 ]; then
|
IFS='|' read -r subnet_count subnet_bonus subnet_reason <<< "$subnet_data"
|
||||||
|
if [ "${subnet_bonus:-0}" -gt 0 ]; then
|
||||||
score=$((score + subnet_bonus))
|
score=$((score + subnet_bonus))
|
||||||
local context_reason="SUBNET_ATTACK"
|
|
||||||
[ -n "$block_reasons" ] && block_reasons="${block_reasons}+" || block_reasons=""
|
[ -n "$block_reasons" ] && block_reasons="${block_reasons}+" || block_reasons=""
|
||||||
block_reasons="${block_reasons}${context_reason}"
|
block_reasons="${block_reasons}${subnet_reason}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Detect timing patterns
|
# Detect timing patterns
|
||||||
|
|||||||
Reference in New Issue
Block a user