This file is indexed.

/usr/share/php/Horde/Mime/Filter/Encoding.php is in php-horde-mime 2.10.3-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/**
 * Copyright 2014-2017 Horde LLC (http://www.horde.org/)
 *
 * See the enclosed file COPYING for license information (LGPL). If you
 * did not receive this file, see http://www.horde.org/licenses/lgpl21.
 *
 * @category  Horde
 * @copyright 2014-2017 Horde LLC
 * @license   http://www.horde.org/licenses/lgpl21 LGPL 2.1
 * @package   Mime
 */

/**
 * Stream filter to determine whether body requires either binary or 8bit
 * encoding (RFC 2045 [6]).
 *
 * @author    Michael Slusarz <slusarz@horde.org>
 * @category  Horde
 * @copyright 2014-2017 Horde LLC
 * @license   http://www.horde.org/licenses/lgpl21 LGPL 2.1
 * @package   Mime
 * @since     2.6.0
 */
class Horde_Mime_Filter_Encoding extends php_user_filter
{
    /**
     * Number of consecutive non-CR/LF characters.
     *
     * @var integer
     */
    protected $_crlf = 0;

    /**
     * @see stream_filter_register()
     */
    public function onCreate()
    {
        $this->params->body = false;

        return true;
    }

    /**
     * @see stream_filter_register()
     */
    public function filter($in, $out, &$consumed, $closing)
    {
        while ($bucket = stream_bucket_make_writeable($in)) {
            if ($this->params->body !== 'binary') {
                $len = $bucket->datalen;
                $str = $bucket->data;

                for ($i = 0; $i < $len; ++$i) {
                    $chr = ord($str[$i]);

                    switch ($chr) {
                    case 0:
                        /* Only binary data can have NULLs. */
                        $this->params->body = 'binary';
                        break 2;

                    case 10: // LF
                    case 13: // CR
                        $this->_crlf = 0;
                        break;

                    default:
                        /* RFC 2045 [2.8]: 8bit data must be less than 998
                         * characters in length. Otherwise, we are looking at
                         * binary. */
                        if (++$this->_crlf > 998) {
                            $this->params->body = 'binary';
                            break 2;
                        } else if ($chr > 127) {
                            $this->params->body = '8bit';
                        }
                        break;
                    }
                }
            }

            $consumed += $bucket->datalen;
            stream_bucket_append($out, $bucket);
        }

        return PSFS_PASS_ON;
    }

}