!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/include/net/   drwxr-xr-x
Free 318.37 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     checksum.h (3.39 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * INET        An implementation of the TCP/IP protocol suite for the LINUX
 *        operating system.  INET is implemented using the  BSD Socket
 *        interface as the means of communication with the user level.
 *
 *        Checksumming functions for IP, TCP, UDP and so on
 *
 * Authors:    Jorge Cwik, <jorge@laser.satlink.net>
 *        Arnt Gulbrandsen, <agulbra@nvg.unit.no>
 *        Borrows very liberally from tcp.c and ip.c, see those
 *        files for more names.
 *
 *        This program is free software; you can redistribute it and/or
 *        modify it under the terms of the GNU General Public License
 *        as published by the Free Software Foundation; either version
 *        2 of the License, or (at your option) any later version.
 */

/*
 *    Fixes:
 *
 *    Ralf Baechle            :    generic ipv6 checksum
 *    <ralf@waldorf-gmbh.de>
 */

#ifndef _CHECKSUM_H
#define _CHECKSUM_H

#include <asm/types.h>
#include <asm/byteorder.h>
#include <net/ip.h>
#include <asm/uaccess.h>
#include <asm/checksum.h>

#ifndef _HAVE_ARCH_IPV6_CSUM

static __inline__ unsigned short int csum_ipv6_magic(struct in6_addr *saddr,
                             struct in6_addr *daddr,
                             __u16 len,
                             unsigned short proto,
                             unsigned int csum) 
{

    int carry;
    __u32 ulen;
    __u32 uproto;

    csum += saddr->s6_addr32[0];
    carry = (csum < saddr->s6_addr32[0]);
    csum += carry;

    csum += saddr->s6_addr32[1];
    carry = (csum < saddr->s6_addr32[1]);
    csum += carry;

    csum += saddr->s6_addr32[2];
    carry = (csum < saddr->s6_addr32[2]);
    csum += carry;

    csum += saddr->s6_addr32[3];
    carry = (csum < saddr->s6_addr32[3]);
    csum += carry;

    csum += daddr->s6_addr32[0];
    carry = (csum < daddr->s6_addr32[0]);
    csum += carry;

    csum += daddr->s6_addr32[1];
    carry = (csum < daddr->s6_addr32[1]);
    csum += carry;

    csum += daddr->s6_addr32[2];
    carry = (csum < daddr->s6_addr32[2]);
    csum += carry;

    csum += daddr->s6_addr32[3];
    carry = (csum < daddr->s6_addr32[3]);
    csum += carry;

    ulen = htonl((__u32) len);
    csum += ulen;
    carry = (csum < ulen);
    csum += carry;

    uproto = htonl(proto);
    csum += uproto;
    carry = (csum < uproto);
    csum += carry;

    return csum_fold(csum);
}

#endif

#ifndef _HAVE_ARCH_COPY_AND_CSUM_FROM_USER
static inline
unsigned int csum_and_copy_from_user (const char *src, char *dst,
                      int len, int sum, int *err_ptr)
{
    if (verify_area(VERIFY_READ, src, len) == 0)
        return csum_partial_copy_from_user(src, dst, len, sum, err_ptr);

    if (len)
        *err_ptr = -EFAULT;

    return sum;
}
#endif

#ifndef HAVE_CSUM_COPY_USER
static __inline__ unsigned int csum_and_copy_to_user
(const char *src, char *dst, int len, unsigned int sum, int *err_ptr)
{
    sum = csum_partial(src, len, sum);

    if (access_ok(VERIFY_WRITE, dst, len)) {
        if (copy_to_user(dst, src, len) == 0)
            return sum;
    }
    if (len)
        *err_ptr = -EFAULT;

    return -1; /* invalid checksum */
}
#endif

static inline unsigned int csum_add(unsigned int csum, unsigned int addend)
{
    csum += addend;
    return csum + (csum < addend);
}

static inline unsigned int csum_sub(unsigned int csum, unsigned int addend)
{
    return csum_add(csum, ~addend);
}

static inline unsigned int
csum_block_add(unsigned int csum, unsigned int csum2, int offset)
{
    if (offset&1)
        csum2 = ((csum2&0xFF00FF)<<8)+((csum2>>8)&0xFF00FF);
    return csum_add(csum, csum2);
}

static inline unsigned int
csum_block_sub(unsigned int csum, unsigned int csum2, int offset)
{
    if (offset&1)
        csum2 = ((csum2&0xFF00FF)<<8)+((csum2>>8)&0xFF00FF);
    return csum_sub(csum, csum2);
}

#endif

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0301 ]--