diff --git a/bin/gatherstats.pl b/bin/gatherstats.pl index 9b02bfa..9cb0a9b 100755 --- a/bin/gatherstats.pl +++ b/bin/gatherstats.pl @@ -500,6 +500,9 @@ sub ClientStats { # encode to utf-8, if necessary $_->{'agent'} = encode('UTF-8', $_->{'agent'}) if $_->{'agent'} =~ /[\x80-\x{ffff}]/; $_->{'version'} = encode('UTF-8', $_->{'version'}) if $_->{'version'} and $_->{'version'} =~ /[\x80-\x{ffff}]/; + # truncate overlong clients or versions + $_->{'agent'} = substr($_->{'agent'}, 0, 150) if length($_->{'agent'}) > 150; + $_->{'version'} = substr($_->{'version'}, 0, 50) if $_->{'version'} and length($_->{'version'}) > 50; # special cases # Mozilla $_->{'agent'} = 'Mozilla' if $_->{'agent'} eq '•Mozilla'; diff --git a/doc/ChangeLog b/doc/ChangeLog index c829e19..aa498ca 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -10,6 +10,7 @@ NewsStats 0.4.0 (unreleased) * Add ClientStats to postingstats. * gatherstats: Don't die on parsing errors. * DBClnts: set version length to to 50. + * gatherstats: Truncate overlong clients or versions. NewsStats 0.3.0 (2025-05-18) * Extract GroupStats (in gatherstats) to subroutine.