This file is indexed.

/usr/lib/cups/driver/foo2zjs is in printer-driver-foo2zjs-common 20151024dfsg0-1ubuntu1.

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

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
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/usr/bin/env python3

# compressor.py
from subprocess import Popen, PIPE

def compress(value):
    """Compresses a byte array with the xz binary"""

    process = Popen(["xz", "--compress", "--force"], stdin=PIPE, stdout=PIPE)
    return process.communicate(value)[0]

def decompress(value):
    """Decompresses a byte array with the xz binary"""

    process = Popen(["xz", "--decompress", "--stdout", "--force"],
                    stdin=PIPE, stdout=PIPE)
    return process.communicate(value)[0]

def compress_file(path):
    """Compress the file at 'path' with the xz binary"""

    process = Popen(["xz", "--compress", "--force", "--stdout", path], stdout=PIPE)
    return process.communicate()[0]

# compressor.py

import os
import sys
from optparse import OptionParser
from sys import argv
import base64
try:
    import cPickle as pickle
except ImportError:
    import pickle
from io import BytesIO

from os.path import basename
from errno import EPIPE

def load():
    ppds_compressed = base64.b64decode(ppds_compressed_b64)
    ppds_decompressed = decompress(ppds_compressed)
    ppds = pickle.loads(ppds_decompressed)
    return ppds

def ls():
    binary_name = basename(argv[0])
    ppds = load()
    for key, value in ppds.items():
        if key == 'ARCHIVE': continue
        for ppd in value[2]:
            try:
                print(ppd.replace('"', '"' + binary_name + ':', 1))
            except IOError as e:
                # Errors like broken pipes (program which takes the standard
                # output terminates before this program terminates) should not
                # generate a traceback.
                if e.errno == EPIPE: exit(0)
                raise

def cat(ppd):
    # Ignore driver's name, take only PPD's
    ppd = ppd.split(":")[-1]
    # Remove also the index
    ppd = "0/" + ppd[ppd.find("/")+1:]

    ppds = load()
    ppds['ARCHIVE'] = BytesIO(decompress(ppds['ARCHIVE']))

    if ppd in ppds:
        start = ppds[ppd][0]
        length = ppds[ppd][1]
        ppds['ARCHIVE'].seek(start)
        return ppds['ARCHIVE'].read(length)

def main():
    usage = "usage: %prog list\n" \
            "       %prog cat URI"
    version = "%prog 1.0.2\n" \
              "Copyright (c) 2013 Vitor Baptista.\n" \
              "This is free software; see the source for copying conditions.\n" \
              "There is NO warranty; not even for MERCHANTABILITY or\n" \
              "FITNESS FOR A PARTICULAR PURPOSE."
    parser = OptionParser(usage=usage,
                          version=version)
    (options, args) = parser.parse_args()

    if len(args) == 0 or len(args) > 2:
        parser.error("incorrect number of arguments")

    if args[0].lower() == 'list':
        ls()
    elif args[0].lower() == 'cat':
        if not len(args) == 2:
            parser.error("incorrect number of arguments")
        ppd = cat(args[1])
        if not ppd:
            parser.error("Printer '%s' does not have default driver!" % args[1])
        try:
            # avoid any assumption of encoding or system locale; just print the
            # bytes of the PPD as they are
            if sys.version_info.major < 3:
                sys.stdout.write(ppd)
            else:
                sys.stdout.buffer.write(ppd)
        except IOError as e:
            # Errors like broken pipes (program which takes the standard output
            # terminates before this program terminates) should not generate a
            # traceback.
            if e.errno == EPIPE: exit(0)
            raise
    else:
        parser.error("argument " + args[0] + " invalid")

# PPDs Archive
ppds_compressed_b64 = b"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"

if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        # We don't want a KeyboardInterrupt throwing a
        # traceback into stdout.
        pass