This file is indexed.

/usr/lib/cups/driver/m2300w is in printer-driver-m2300w 0.51-7.

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
#!/usr/bin/env python

# compressor.py
from subprocess import Popen, PIPE

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

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

def decompress(value):
    """Decompresses a string 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

from optparse import OptionParser
from sys import argv
import base64
import cPickle
from cStringIO import StringIO
from os.path import basename

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

def ls():
    binary_name = basename(argv[0])
    ppds = load()
    for key, value in ppds.iteritems():
        if key == 'ARCHIVE': continue
        for ppd in value[2]:
            print ppd.replace('"', '"' + binary_name + ':', 1)

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'] = StringIO(decompress(ppds['ARCHIVE']))

    if ppds.has_key(ppd):
        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 0.4.9\n" \
              "Copyright (c) 2010 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])
        print ppd
    else:
        parser.error("argument " + args[0] + " invalid")

# PPDs Archive
ppds_compressed_b64 = "/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4CktEkxdABQZCgMPj8dYIupuhXtLgOG1xLA6lSAf/o5AW4fG7h9eaFxF09W3lZpriSoc/DXsIX54I7z2voZjL9/WK5KXDLG9wgG0tHDfWlQdbPo9ONUhDnl7Zp8j8gjK57IoHW+2r7JvsuMxhQ5CBc9GJb+CMVy+rLr6PP3Ur36YDAr0HRe0VckHdkU6OTBoAWvnbm9yXKSbs5KCpBbOC0vOIrg0XUnAnRclUYb6qWWuc8yxr9CBof0K2xPNUf+M/TDSggjOGPcFcMPLsPEXn6gVde15/l5TAyPT7s7X6kyqvxU2/S0Iik2sk1HDGTwNvLqeooxb8O+3dGWP2c5hAxXzPd3ISOfsvTJSQanpMLdRLRj4xvZ38i9JlmgUaipGnlbu7+4suEzbYPDMW+TyZKlyxwfOAWNRyOTbP2gRK5XrlUjXQiotgyZClpl5BFbOE22WjGVGQHVOSqpxpJs166Fg5qTVBdhLIb1R6SG9JP9CA9WUVQ7oMDtbvz7VMcd9EvI0VFGyd7cL9qdGM5zAd8lg31497F7X19gDiST4IAtP5QpZLBr/SmGVtIrzWDQ/7DPYI8HAWqu8ty2/04jFW5p5MJ0xUTU4zjbJjGoG7I7xoJl7yX0Wv6+NTPLrrhFA/W8/UAKNuGBAewH6QYMVom1WsB9yfZPjB9cODLh/cwOBgNWspFc8JjdyFpVTKQEJRe6ZmOEoRIShQLMxI6zE5KN4gQsX4+DQhTNB3DTH5ugM+g59FJvHLqLzB01nhUG+3FXKczS+y6JpLmbNtVj8e8JC/Jsqm++tmGNxntWtAZwPOtjFi3WV/9Qc/GXChefoEYX03s7CsaTvyzO2ANkPnWKVvU4QjqKSqc06sOx0egp7RQuyQ6AfxLEE0umfyUsPUzBpN4NuKc7iKfLjIm7td0oBDZOavACfw675feNB4Iav5MjazMYicOgL6w4IBL+r64l/0Ub/18LasAk6qSgh7VVFx5n+iKi4l9YKfbA+tzH22AHyiRv+zYsozcZWbwlUt5qEaiRpJPzXAcS7HnLjfUpdWdvUAKy94m1GAcTaglJMho37wtjolgpGy3rzl4+s7cuCdGlC7eLGF6iPRlGrRibKuQ2HKgKoh0q2QVoGa7W0OTqyNz6fUUjqdqLe+PUyXqBbsfzIf4+QNYBbMfIud9ZVPcIBNpBddnNi7onKvhVeQ0prFWL3mY9D2OSWTa50uuJszamjonOwDBIUgQYxgTYRkZh9c0CHNka3PfaFbvuLYlV3OZ1ZNW0wFaGu+RpEMqP0aHjIekDRUi24qnNQ9iklrwfro1KLi5tYCacLLitp+z1yny/hjn9FME9gaOiTIgDNoQvGnAbQJXXTFz3nNPujgraFU8StArNMlVkMoI2FGDKhoPwcIyDVOEqS5QNDU7v01SBRtvaTfj7fNG9gKUlR0/msBRFe+B8aXxB8/AqrMGpghbYa/y90keIC6f/8hESkZOj29n2ZEMUATmZwtSuKhbaxyq2pbqXrRpMUGPAn8cDX0tX2PNmxARz3K0MeOBSaMTPn0uLw9OrhYlxufTQUMgVr7L5FkuErHys1JMiaTTgUok0MUFWPZ58oXT8v9rk3cB3v63UjMSjxeXbXDUK2QD9MtcNww8k0WryV0ohYkc/lpH02NqpEN5MzwXJXgQni1dgftGvOVm35DDHd/NFqnt56lNE2ao2aUXlNjFfOqyT8uhQFYUCcEuOlEXsXwdkQfa9IxTiM+6czYYXk7zvNr+iY7Qkoi00zE1m2bgzxDgMkHXxlDHE7x8A5pm1Wah9QSIno9L3Rq7Uh7/+GpaQ3ohzPNg8XSgSZVtEM3s1p6XsZxBO/Q/2tHtB4RlH9EngU3svghVfcEi6KIlfS8SN/kH1qFaOVn68Oo7kblulvdkgd0WWAe89D8Mf9O7W02Mf2DC9PoTBe2DFiYPdx5JiZrsuSu4ASyQEbUUa91Br0Ul8zMjEK6bIXWuyZ4QowL5wdMhpVKO5OFo/4MTtstQ7mieNKugjzb5AcmtGDDSriwHX5q8O3qkZERddjOT6+62aHYFA1QmGAsA9YxC+k0rl3j4XRjxSjyCSbsn5DLkG9L+4zVkZeUBgHgcC/DVvl1kT/V8BVK7JhC4iK2AhLsshMxOzTW/ihuCVA+4W6MF5gwyB2vxSr1PcEhyESkKCfWyvzKPde/RnfaU61j2ApM5K5JnIeRZZk8uTmTtw5dNOV1c44FjDDSX5glQLk1mhE2Lj5+eY9bgCA12bG24F1OSDxzEXOsBVroUg+i7ZIPOkEiDoVZdLCReve8d8+opSFDl9bE+UEYYIqjd/9ecWo1zDy5aEspTmrblT9M0pJv/Tb13OKZAETcZWBbZoLJYLxXWpfU/Rx5e3bVOqH/Kp+pm2PIBpyT5B9aBV6vKmz/k5ExdeeLJvGcKhtuBhewbzTsmeSBDymTxGFWumt9USnE6AkKSH3NXNaQO7LTM6pqvu6KMvS/wNa+TQQItXJ9XCKHIZFKt2SIneeZ1p1D/jReb9QDbAsFR8TRBxZP11YnJbbvIYRIMUqRq7IIg8a4JvflaXZxXoQlFyBqiILYLHcQnaXbDmE7eV/1sgj/Mizjx9UxO2WzqMtJJnqR1sZwj/oF3ea3jqQ1TqylQIa8seWizC5Vkthkvx/LYmZISmksHKPifsiSN9piYQYi2iJIPD39GCK16PgYfBkO6OuDHldnHyiNUiM+mbODwoUUvQLeCWo8OAwvTi+tpIHEmg77yT7xCwSISNXxLoN9vYgGs/NyyK5uDNJCgA0LvSXU/F1HaIEkvX16lWatHlXcV9lbBZmAhOWTDmTvNz5oVKUmowts8OROoqAXj+isQc24Re8Z7/7sTHqZfT7NqUDDtXTRlhXAWR54hkq+P8n9qh7All7jkaJignAzUxDJwhxxJqIzfENSZuPeeSvQJjNW8zGn/V9svwZH9ox2VkXcUBARPVOUvWlNZ4Muv0lVvwzp+a7qUbof8GcrFYHe1p46yfyV521+kQAkOI/zhcbO6NmWzWMUp3CTo/Vi6By71pfOXyh+JdoTuAJPQ5PVprBeAnqgB0KYiO2kVyOPp0DkAmgoWnAKlN4CjU/ouIcBLjD7J6sDgpPkd+TQsj3YYpgiPZYkVUBD8LzUxnJy+C+/QdhrfRZLNZcxfRJwHbpttX3k5xyRRLzu1gKfSIj4LGrx91x/lm9YwNqpVy6XyqLTNre79ITaoptFDBdHI00Z2yzt5QpArXrrUCn3gy8a3gfo+pCJoBU1pBi8aIvy+NHO8EwMgxSmbv5aAtobeLdXw5Nk5t8ufFT2Hdt6k6B7ClmKRX61dmWHN7rh5Iy/oiO5UARW6E2jbR3p5/DpPvJaKdNmqN6ANuhlD57OwTr68OrqW7saDCULa2IS2uRIJOLNDsJ+1rldKBMHyTM6snxAz941+a1hPwfG9GOOByaWlWFGjrxUgIARF/mvBUNO7IiYl5kBcPc0pB6KQ1AWwIZvDMDB8H7IvHPm7NidO6BjBy4KeBBL0tCaT7c9YYP0ufiRN8WEG43w6vs9DIrppKJjkOOg+soD6K8nX5aruLzb9fbW67bH/zthrBwxJtlxBtMMzBsVMInmnpcRrXlary0D1pjiy27p3sd/V2Tb2fX4HQU+PpQWZK/mZsen8PlG6mVtKfTeDJALJVumiaL9MuUph1kqFnHJujYjgdhMjATEZMsiuRZUVjSw4gmQpRd+RgVeT7rlLpETOXJEW6x1jjmql9ExpB3UG74PIsngrv2zyIX5XG2tAQjd4/0uxIkFF0CwbrdFxT8bhssFQknCIExnpvmOE4RIs9A3vXa3afifnslLFf9EbypuFOdZl15Wkt5Huvb70eXctPen6U20WM8olgfxTS3qpZOaIr2k6XHW+ekb6gUH5zVJ4Jv9kC6nPcDxj20vV80SGeg7RUv0ZMQL3Hu2Jz3vyvgAFBsGCa8F73REs6wtsO0JnSgE/uyL602hAg9tZLTpWkkRrNbLPi71XfAjTim8JtAYVyEeo+QzG21zE/vNJrN8I6BPaAjGJ27Z6qu84ZtUilzclg2tdfgGWh0lQ6CoNSLbpqBTk1AgY5Iuad1NfdQoQqObKiRF16B0bpOTp3JInJnAwvIVa4NLPd95uN7qGrcPQyX/G9EeEpnjm38Q2tmlf7ulLduwbzSmsolKa3EmhhzQdFG4UYLuxPY8fegnUuAEjfUL9R1sWI1C+TA8ylEVDRO+6VbR8E10AqzFAhlitfYQAEgT9Exc8qtuvLt6DHUQszbZMBCBAgfHIN3dFptrWdj2msrZJCHzaK+YRumeX4/HIOtSccYsbIja9Yc8zGAGoEKq9JR2GhXhc720YUiDwtc2eH19dbo6ttVSS7X1EkrDCav5OmJ21r0AxphQ6FXu4Lj0RbqkkFN2FoFit0j56hCV9mFx4FEmf8S5NGm8IJxKOOgR2jF3+XMoX/M0iCBpQqLOuddywx59wHxRAz+Unmywn/IryDPbUIX5eaJaxVm8uQpD3I/aSseHg6rwakwXZfQBpwaajAsfTtlOZCMVY7aXsDDfo35GI9YZNd9NE/rJPF8uqrEW6w25ExXJGxiaxOtrgwaoc1AXJNkQ1deqYmXB87qNRy6BJqc5bZtGuztpZsXjf/Nun13dYr10L12Jx2uv5WL0+ejfn+BFCWKwS2UE4w9VXwRlvVD5BY/+00NmjKMFgV3Wnm/K6lSV2EctFnWjq3sliS1LYKhnTv7nazfeHs4/J9f98mbNjgNBmwiZye/LPTa8wmpaneCtvNMmiYLbCfYtk5qEe0vPgFgXn0yR0CKSeYhiqDqZWWNZ64M1QEkEJSrw2eLiJQmtILVXmqTEpF4Jk2+xf1bemW/jywDsU0dV+ieUgVZUFLocTjkOiKfJajXGhrirQUr+J/Mbn9iZc35SDKFRMVcl7J9les1JReXm/P03ynkkCzadIr9B+Tuc2gkYqt5CIcLDJo3HoifKiThAlNTmro3ElgOZiwRk11op0rrPFMnosEuN+Hrq2eKY4UXP/P55iaaQnqR17bPTTdb+bPND8GW0EcEDKHPJ56zkeTodYpQV5yRgpmny990wE/bOyLFuv54G1b64gv6MG7XPsuD71jf4rNVowmVQ8d2iYnd7dk1B/kpLCNbikmYsXfSEklQHb1tyxIfLjgTd9+EW2F+T8IfE3DWgncDXFBBVHSx203cNQAHjrrA+MZCUgozXbeJ5cWrRuQPVIiPaHiz9laeCqt9qiKVnY/QOVeRES4iuDPz5kBFbhklUHLYqOBO4GGykC8IZMxm9sxjYzYIR2rinGh8++beGEASzXyg8OK+tbSOyc16jC373pjEWJOeAqjDQ3X0Dfa5RFsQ78tbmiDIpy8gRp8/o0njLCq+cjurNn/Agk6+M2QwQf8J9eDlY2d2e07TSi0xOooMkeNFhQ7nieHTOh5ll9yC+CM/6o3Ejj7rDUxmYqRrRDTXgxv4/LIpEOSnHaz4/V1GAZj0q/c7a8Yv4tFo3xsknQ0Ktgf7O1CcvKAEad/A4P2MEP2+g0FXWo5gZBI4Sr8tbtOStqMJc88qmhbR32vJAOUlkGc1BwRDnB/3WIfMHZTiOymkFkX7Lk9cZvKP3B4YeUya1EY8q5H+O44v3WeptmDjarSrZ3OZnrAnWHyp+mWcikiD/YJLyCFVnnKO23tegTlTx3uQDUFsCNDirjSfMXiN98YQitC5E7r4e3Q8frRHCL4xTbaWw2W+UuKlL/ZRECLNN7TdtUIL/ZLzFCNufDGpZHC8/+JwxQtUfpKEzoCm41IIaiYellCEe+eahjo/fVC1RTtrTSYEGpu9L59Iwy/q56N2l0Ej7hX+aNKKHyw4qPIrdR/is4HXcqrJfYfP4Du/t+UAbRcQxfbqAtlrT+0Qj7ek8MiCHeDAIIvk9f6PLao6KP+FqnS0fdGSl+TVbWUgaHGrC4AsOmuEkbvTn5I3oOBA2iaJf2kb5KofcJhdXa6L85PXcwNdi4eZHxfTobnrJtxiK1Mv0C8duuf08MDNtu6Ah+rIXUK7nJEMTrpwDzIj2qANLOlHaGMP7UAYk57b00BdMbhTLvsSz8Cp8ja476p+Hgat4RvdsdZlBtFyg5DZjoCPdZ+t+xfXSQACs8BOBdcD+DqyvesO06vXHltiyDHtHMm7lNt56x1qki1AMY51JUuHK/TZDowaajIYe4hMeckU5dL2ht+RntReijXNMyTqsRTq11VUahDNcdLmnFRrkaicaOiAYqVPcH8AakMDsB4qimIAAegkrlIAAB5Qj8+xxGf7AgAAAAAEWVo="

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