package Check::Linux2_4;

# cpanel - Linux2_4.pm                            Copyright(c) 2007 cPanel, Inc.
#                                                           All rights Reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

my ($system, $release) = ( POSIX::uname() )[0,2];

our $title = 'Linux 2.4 Kernel';
our $notice = "You are running an insecure kernel ($release). You should upgrade to a newer version as soon as possible to avoid your system being compromised.";
our $severity = 8;
our $group = 'security';

sub relevant {
    return if $system ne 'Linux';
    my $insecurekernel = 0;
    if ( $release =~ /(\d+)\.(\d+)\.(\d+)-(\S+)/ ) {
        my $major   = $1;
        my $minor   = $2;
        my $rev     = $3;
        my $release = $4;

        my ( $subrelease, $sv ) = split( /\./, $release );
        if ( $major eq '2' && $minor eq '4' ) {
            $insecurekernel = 1 if $rev < 20;
            $insecurekernel = 1 if $rev eq '20' && int($subrelease) < 28;
        }
        $insecurekernel = 0 if $release =~ m/grsec/;
        $insecurekernel = 0 if $release =~ m/stab/;
    }
    else {
        if ( $release =~ /(\d+)\.(\d+)\.(\d+)/ ) {
            my $major = $1;
            my $minor = $2;
            my $rev   = $3;
            if ( $major eq '2' && $minor eq '4' ) {
                $insecurekernel = 1 if $rev < 21;
            }
        }
    }
    return $insecurekernel;
}