!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/local/webmail2/functions/   drwxr-xr-x
Free 318.38 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:     file_prefs.php (10.37 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * file_prefs.php
 *
 * This contains functions for manipulating user preferences in files
 *
 * @copyright &copy; 1999-2006 The SquirrelMail Project Team
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version $Id: file_prefs.php,v 1.43 2006/01/23 18:39:32 tokul Exp $
 * @package squirrelmail
 * @subpackage prefs
 * @since 1.2.5
 */

/** @ignore */
if (! defined('SM_PATH')) define('SM_PATH','../');

/** include this for error messages */
include_once(SM_PATH 'functions/display_messages.php');

/**
 * Check the preferences into the session cache.
 * @param string $data_dir
 * @param string $username
 * @since 1.1.3
 */
function cachePrefValues($data_dir$username) {
    global 
$prefs_are_cached$prefs_cache;

    
sqgetGlobalVar('prefs_are_cached'$prefs_are_cachedSQ_SESSION );
    if ( isset(
$prefs_are_cached) && $prefs_are_cached) {
        
sqgetGlobalVar('prefs_cache'$prefs_cacheSQ_SESSION );
        return;
    }

    
sqsession_unregister('prefs_cache');
    
sqsession_unregister('prefs_are_cached');

    
/* Calculate the filename for the user's preference file */
    
$filename getHashedFile($username$data_dir"$username.pref");

    
/* A call to checkForPrefs here should take eliminate the need for */
    /* this to be called throughout the rest of the SquirrelMail code. */
    
checkForPrefs($data_dir$username$filename);

    
/* Make sure that the preference file now DOES exist. */
    
if (!file_exists($filename)) {
        
logout_errorsprintf_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename)  );
        exit;
    }

    
/* Open the file, or else display an error to the user. */
    
if(!$file = @fopen($filename'r'))
    {
        
logout_errorsprintf_("Preference file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename) );
        exit;
    }

    
/* Read in the preferences. */
    
$highlight_num 0;
    while (! 
feof($file)) {
        
$pref '';
        
/* keep reading a pref until we reach an eol (\n (or \r for macs)) */
        
while($read fgets($file1024))
        {
                
$pref .= $read;
                if(
strpos($read,"\n") || strpos($read,"\r"))
                        break;
        }
        
$pref trim($pref);
        
$equalsAt strpos($pref'=');
        if (
$equalsAt 0) {
            
$key substr($pref0$equalsAt);
            
$value substr($pref$equalsAt 1);
            
/* this is to 'rescue' old-style highlighting rules. */
            
if (substr($key09) == 'highlight') {
                
$key 'highlight' $highlight_num;
                
$highlight_num ++;
            }

            if (
$value != '') {
                
$prefs_cache[$key] = $value;
            }
        }
    }
    
fclose($file);

    
$prefs_are_cached TRUE;

    
sqsession_register($prefs_cache'prefs_cache');
    
sqsession_register($prefs_are_cached'prefs_are_cached');
}

/**
 * Return the value for the preference given by $string.
 * @param string $data_dir data directory
 * @param string $username user name
 * @param string $string preference name
 * @param string $default (since 1.2.0) default preference value
 * @return mixed
 */
function getPref($data_dir$username$string$default '') {
    global 
$prefs_cache;

    
$result do_hook_function('get_pref_override',array($username,$string));
    if (!
$result) {
        
cachePrefValues($data_dir$username);
        if (isset(
$prefs_cache[$string])) {
            
$result $prefs_cache[$string];
        } else {
            
$result do_hook_function('get_pref', array($username,$string));
            if (!
$result) {
                
$result $default;
            }
        }
    }
    return (
$result);
}

/**
 * Save the preferences for this user.
 * @param string $data_dir data directory
 * @param string $username user name
 * @since 1.1.3
 */
function savePrefValues($data_dir$username) {
    global 
$prefs_cache;

    
$filename getHashedFile($username$data_dir"$username.pref");

    
/* Open the file for writing, or else display an error to the user. */
    
if(!$file = @fopen($filename.'.tmp''w'))
    {
        
logout_errorsprintf_("Preference file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename.'.tmp') );
        exit;
    }
    foreach (
$prefs_cache as $Key => $Value) {
        if (isset(
$Value)) {
            if ( 
sq_fwrite($file$Key '=' $Value "\n") === FALSE ) {
               
logout_errorsprintf_("Preference file, %s, could not be written. Contact your system administrator to resolve this issue.") , $filename '.tmp') );
               exit;
            }
        }
    }
    
fclose($file);
    if (! @
copy($filename '.tmp',$filename) ) {
        
logout_errorsprintf_("Preference file, %s, could not be copied from temporary file, %s. Contact your system administrator to resolve this issue."), $filename$filename '.tmp') );
        exit;
    }
    @
unlink($filename '.tmp');
    @
chmod($filename0600);
    
sqsession_register($prefs_cache 'prefs_cache');
}

/**
 * Remove a preference for the current user.
 * @param string $data_dir data directory
 * @param string $username user name
 * @param string $string preference name
 */
function removePref($data_dir$username$string) {
    global 
$prefs_cache;

    
cachePrefValues($data_dir$username);

    if (isset(
$prefs_cache[$string])) {
        unset(
$prefs_cache[$string]);
    }

    
savePrefValues($data_dir$username);
}

/**
 * Set a there preference $string to $value.
 * @param string $data_dir data directory
 * @param string $username user name
 * @param string $string preference name
 * @param mixed $value preference value
 */
function setPref($data_dir$username$string$value) {
    global 
$prefs_cache;

    
cachePrefValues($data_dir$username);
    if (isset(
$prefs_cache[$string]) && ($prefs_cache[$string] == $value)) {
        return;
    }

    if (
$value === '') {
        
removePref($data_dir$username$string);
        return;
    }

    
$prefs_cache[$string] = $value;
    
savePrefValues($data_dir$username);
}

/**
 * Check for a preferences file. If one can not be found, create it.
 * @param string $data_dir data directory
 * @param string $username user name
 * @param string $filename (since 1.2.0) preference file name.
 *  detects file name, if set to empty string.
 */
function checkForPrefs($data_dir$username$filename '') {
    
/* First, make sure we have the filename. */
    
if ($filename == '') {
        
$filename getHashedFile($username$data_dir"$username.pref");
    }

    
/* Then, check if the file exists. */
    
if (!@file_exists($filename) ) {

        
/* If it does not exist, check for default_prefs */

        /* First, check legacy locations: data dir */
        
if(substr($data_dir,-1) != '/') {
            
$data_dir .= '/';
        }
        
$default_pref $data_dir 'default_pref';

        
/* or legacy location: internal data dir */
        
if (!@file_exists($default_pref)) {
            
$default_pref SM_PATH 'data/default_pref';
        }

        
/* If no legacies, check where we'd expect it to be located:
         * under config/ */
        
if (!@file_exists($default_pref)) {
            
$default_pref SM_PATH 'config/default_pref';
        }

        
/* If a default_pref file found, try to copy it, if none found,
         * try to create an empty one. If that fails, report an error.
         */
        
if (
            ( 
is_readable($default_pref) && !@copy($default_pref$filename) ) ||
            !@
touch($filename)
        ) {
            
$uid 'httpd';
            if (
function_exists('posix_getuid')){
                
$user_data posix_getpwuid(posix_getuid());
                
$uid $user_data['name'];
            }
            
$errTitle _("Could not create initial preference file!");
            
$errString $errTitle "<br />\n" .
                       
sprintf_("%s should be writable by user %s"), $data_dir$uid ) . "<br />\n" .
                       
_("Please contact your system administrator and report this error.") . "<br />\n";
            
logout_error$errString$errTitle );
            exit;
        }
    }
}

/**
 * Write the User Signature.
 * @param string $data_dir data directory
 * @param string $username user name
 * @param integer $number (since 1.2.5) identity number.
 *  parameter was used for signature text before 1.2.5.
 * @param string $value (since 1.2.5) signature text
 */
function setSig($data_dir$username$number$value) {
    
// Limit signature size to 64KB (database BLOB limit)
    
if (strlen($value)>65536) {
        
error_option_save(_("Signature is too big."));
        return;
    }
    
$filename getHashedFile($username$data_dir"$username.si$number");
    
/* Open the file for writing, or else display an error to the user. */
    
if(!$file = @fopen("$filename.tmp"'w')) {
        
logout_errorsprintf_("Signature file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename '.tmp') );
        exit;
    }
    if ( 
sq_fwrite($file$value) === FALSE ) {
       
logout_errorsprintf_("Signature file, %s, could not be written. Contact your system administrator to resolve this issue.") , $filename '.tmp'));
       exit;
    }
    
fclose($file);
    if (! @
copy($filename '.tmp',$filename) ) {
       
logout_errorsprintf_("Signature file, %s, could not be copied from temporary file, %s. Contact your system administrator to resolve this issue."), $filename$filename '.tmp') );
       exit;
    }
    @
unlink($filename '.tmp');
    @
chmod($filename0600);

}

/**
 * Get the signature.
 * @param string $data_dir data directory
 * @param string $username user name
 * @param integer $number (since 1.2.5) identity number
 * @return string signature
 */
function getSig($data_dir$username$number) {
    
$filename getHashedFile($username$data_dir"$username.si$number");
    
$sig '';
    if (
file_exists($filename)) {
        
/* Open the file, or else display an error to the user. */
        
if(!$file = @fopen($filename'r'))
        {
            
logout_errorsprintf_("Signature file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename) );
            exit;
        }
        while (!
feof($file)) {
            
$sig .= fgets($file1024);
        }
        
fclose($file);
    }
    return 
$sig;
}

// vim: et ts=4
?>

:: 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.0053 ]--