404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.222.185.243: ~ $
# vim: set fileencoding=UTF-8 :
'''apport package hook for grub2

Author: Jean-Baptiste Lallement <jeanbaptiste.lallement@gmail.com>

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 3 of the License, or (at your
option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
the full text of the license.
'''

from __future__ import print_function

from apport.hookutils import *
import os
import subprocess
import re

def check_shell_syntax(path):
    ''' Check the syntax of a shell script '''
    try:
        with open(os.devnull, 'w') as devnull:
            subprocess.check_call(['/bin/sh', '-n', path], stderr=devnull)
    except subprocess.CalledProcessError:
        return False
    return True

def check_shell_syntax_harder(path):
    ''' Check the syntax of a shell script '''
    try:
        # sh -n is tempting, but not good enough.  Consider this case:
        #
        #   GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash nomodeset”
        #
        # The quotes are Unicode quotes, not valid in the shell and probably
        # caused by copying a line out of a web page.  This is parsed as an
        # instruction to run the 'splash' command with argument 'nomodeset”'
        # and with the GRUB_CMDLINE_LINUX_DEFAULT environment variable set
        # to '”quiet'.  'sh -n' allows this because this is a valid parse
        # and it's possible that the command 'splash' might exist, but what
        # we need to know is whether sourcing the file will fail.
        #
        # Unfortunately this test may involve executing code.  However, this
        # file is already sourced as root when running update-grub, so it
        # seems unlikely that this could do any further harm.
        with open(os.devnull, 'w') as devnull:
            subprocess.check_call(
                ['/bin/sh', '-ec', '. %s' % re.escape(path)], stderr=devnull)
    except subprocess.CalledProcessError:
        return False
    return True


def add_info(report):
    if report['ProblemType'] == 'Package':
        # To detect if root fs is a loop device
        attach_file(report, '/proc/cmdline','ProcCmdLine')
        attach_default_grub(report, 'EtcDefaultGrub')
        attach_file_if_exists(report, '/boot/grub/device.map', 'DeviceMap')
        try:
            grub_d = '/etc/default/grub.d'
            for name in sorted(os.listdir(grub_d)):
                if name.endswith('.cfg'):
                    key = 'EtcDefaultGrubD.' + path_to_key(name)
                    attach_file_if_exists(
                        report, os.path.join(grub_d, name), key)
        except OSError:
            pass

        invalid_grub_script = []
        if not check_shell_syntax_harder('/etc/default/grub'):
            invalid_grub_script.append('/etc/default/grub')

        # Check scripts in /etc/grub.d since some users directly change
        # configuration there
        grubdir='/etc/grub.d'
        for f in os.listdir(grubdir):
            fullpath=os.path.join(grubdir, f)
            if f != 'README' and os.access(fullpath, os.X_OK) \
               and not check_shell_syntax(fullpath):
                invalid_grub_script.append(fullpath)
                attach_file(report, fullpath)

        # TODO: Add some UI to ask if the user modified the invalid script
        # and if he still wants to report it
        if invalid_grub_script:
            report['InvalidGrubScript'] = ' '.join(invalid_grub_script)

if __name__ == '__main__':
    r = {}
    r['ProblemType'] = 'Package'
    add_info(r)
    for k, v in r.items():
        print('%s: "%s"' % (k, v))
        print("========================================")

Filemanager

Name Type Size Permission Actions
apache2.py File 1.77 KB 0644
cloud-init.py File 176 B 0644
cryptsetup.py File 1.06 KB 0644
isc-dhcp-client.py File 1.75 KB 0644
libatasmart4.py File 943 B 0644
openssh-client.py File 1.14 KB 0644
openssh-server.py File 1011 B 0644
source_apparmor.py File 2.8 KB 0644
source_apport.py File 569 B 0644
source_apport.pyc File 830 B 0644
source_byobu.py File 417 B 0644
source_console-setup.py File 374 B 0644
source_debian-installer.py File 1.86 KB 0644
source_debian-installer.pyc File 2.04 KB 0644
source_fontconfig.py File 162 B 0644
source_grub2.py File 3.69 KB 0644
source_libdmx.py File 23.93 KB 0755
source_libdrm.py File 23.93 KB 0755
source_libfontenc.py File 23.93 KB 0755
source_libfs.py File 23.93 KB 0755
source_libice.py File 23.93 KB 0755
source_libinput.py File 23.93 KB 0755
source_libpciaccess.py File 23.93 KB 0755
source_libsm.py File 23.93 KB 0755
source_libvdpau.py File 23.93 KB 0755
source_libwacom.py File 23.93 KB 0755
source_libx11.py File 23.93 KB 0755
source_libxau.py File 23.93 KB 0755
source_libxaw.py File 23.93 KB 0755
source_libxcb.py File 23.93 KB 0755
source_libxcomposite.py File 23.93 KB 0755
source_libxcursor.py File 23.93 KB 0755
source_libxdamage.py File 23.93 KB 0755
source_libxdmcp.py File 23.93 KB 0755
source_libxext.py File 23.93 KB 0755
source_libxfixes.py File 23.93 KB 0755
source_libxfont.py File 23.93 KB 0755
source_libxfontcache.py File 23.93 KB 0755
source_libxft.py File 23.93 KB 0755
source_libxi.py File 23.93 KB 0755
source_libxinerama.py File 23.93 KB 0755
source_libxkbcommon.py File 23.93 KB 0755
source_libxkbfile.py File 23.93 KB 0755
source_libxkbui.py File 23.93 KB 0755
source_libxmu.py File 23.93 KB 0755
source_libxpm.py File 23.93 KB 0755
source_libxrandr.py File 23.93 KB 0755
source_libxrender.py File 23.93 KB 0755
source_libxres.py File 23.93 KB 0755
source_libxss.py File 23.93 KB 0755
source_libxt.py File 23.93 KB 0755
source_libxtst.py File 23.93 KB 0755
source_libxv.py File 23.93 KB 0755
source_libxvmc.py File 23.93 KB 0755
source_libxxf86dga.py File 23.93 KB 0755
source_libxxf86vm.py File 23.93 KB 0755
source_linux-firmware.py File 6.11 KB 0644
source_linux-firmware.pyc File 4.45 KB 0644
source_linux-meta-oem-osp1.py File 6.11 KB 0644
source_linux-meta-oem-osp1.pyc File 4.46 KB 0644
source_linux-meta-oem.py File 6.11 KB 0644
source_linux-meta-oem.pyc File 4.45 KB 0644
source_linux-meta.py File 6.11 KB 0644
source_linux-meta.pyc File 4.45 KB 0644
source_linux-nexus7.py File 948 B 0644
source_linux-nexus7.pyc File 1.11 KB 0644
source_linux-oem-osp1.py File 6.11 KB 0644
source_linux-oem-osp1.pyc File 4.45 KB 0644
source_linux-oem.py File 6.11 KB 0644
source_linux-oem.pyc File 4.44 KB 0644
source_linux-signed-oem-osp1.py File 6.11 KB 0644
source_linux-signed-oem-osp1.pyc File 4.47 KB 0644
source_linux-signed-oem.py File 6.11 KB 0644
source_linux-signed-oem.pyc File 4.46 KB 0644
source_linux-signed.py File 6.11 KB 0644
source_linux-signed.pyc File 4.45 KB 0644
source_linux.py File 6.11 KB 0644
source_linux.pyc File 4.44 KB 0644
source_mdadm.py File 2.2 KB 0644
source_mesa-demos.py File 23.93 KB 0755
source_mesa.py File 23.93 KB 0755
source_mtdev.py File 4.07 KB 0644
source_mysql-5.7.py File 2.46 KB 0644
source_network-manager-applet.py File 2.93 KB 0644
source_network-manager.py File 2.93 KB 0644
source_pixman.py File 23.93 KB 0755
source_plymouth.py File 1.26 KB 0644
source_pulseaudio.py File 278 B 0644
source_radeontool.py File 23.93 KB 0755
source_shadow.py File 720 B 0644
source_shim-signed.py File 1.95 KB 0644
source_shim.py File 1.95 KB 0644
source_sudo.py File 1.13 KB 0644
source_ubiquity.py File 7.55 KB 0644
source_ubiquity.pyc File 6.11 KB 0644
source_ubuntu-advantage-tools.py File 1.01 KB 0644
source_ubuntu-release-upgrader.py File 2.19 KB 0644
source_unattended-upgrades.py File 705 B 0644
source_update-manager.py File 2.24 KB 0644
source_utouch-grail.py File 4.07 KB 0644
source_utouch.py File 4.07 KB 0644
source_wayland.py File 23.93 KB 0755
source_weston.py File 23.93 KB 0755
source_x-kit.py File 23.93 KB 0755
source_x11-apps.py File 23.93 KB 0755
source_x11-session-utils.py File 23.93 KB 0755
source_x11-utils.py File 23.93 KB 0755
source_x11-xfs-utils.py File 23.93 KB 0755
source_x11-xkb-utils.py File 23.93 KB 0755
source_x11-xserver-utils.py File 23.93 KB 0755
source_x11proto-bigreqs.py File 23.93 KB 0755
source_x11proto-composite.py File 23.93 KB 0755
source_x11proto-core.py File 23.93 KB 0755
source_x11proto-damage.py File 23.93 KB 0755
source_x11proto-dmx.py File 23.93 KB 0755
source_x11proto-dri2.py File 23.93 KB 0755
source_x11proto-evie.py File 23.93 KB 0755
source_x11proto-fixes.py File 23.93 KB 0755
source_x11proto-fontcache.py File 23.93 KB 0755
source_x11proto-fonts.py File 23.93 KB 0755
source_x11proto-gl.py File 23.93 KB 0755
source_x11proto-input.py File 23.93 KB 0755
source_x11proto-kb.py File 23.93 KB 0755
source_x11proto-print.py File 23.93 KB 0755
source_x11proto-randr.py File 23.93 KB 0755
source_x11proto-record.py File 23.93 KB 0755
source_x11proto-render.py File 23.93 KB 0755
source_x11proto-resource.py File 23.93 KB 0755
source_x11proto-scrnsaver.py File 23.93 KB 0755
source_x11proto-trap.py File 23.93 KB 0755
source_x11proto-video.py File 23.93 KB 0755
source_x11proto-xcmisc.py File 23.93 KB 0755
source_x11proto-xext.py File 23.93 KB 0755
source_x11proto-xf86bigfont.py File 23.93 KB 0755
source_x11proto-xf86dga.py File 23.93 KB 0755
source_x11proto-xf86dri.py File 23.93 KB 0755
source_x11proto-xf86vidmode.py File 23.93 KB 0755
source_x11proto-xinerama.py File 23.93 KB 0755
source_xauth.py File 23.93 KB 0755
source_xbitmaps.py File 23.93 KB 0755
source_xcb-proto.py File 23.93 KB 0755
source_xcompmgr.py File 23.93 KB 0755
source_xcursor-themes.py File 23.93 KB 0755
source_xdm.py File 23.93 KB 0755
source_xf86-input-evtouch.py File 23.93 KB 0755
source_xf86-input-mtrack.py File 23.93 KB 0755
source_xf86-input-wacom.py File 23.93 KB 0755
source_xf86-video-displaylink.py File 23.93 KB 0755
source_xf86-video-msm.py File 23.93 KB 0755
source_xf86-video-omapfb.py File 23.93 KB 0755
source_xfonts-core.py File 23.93 KB 0755
source_xfonts-utils.py File 23.93 KB 0755
source_xfs.py File 23.93 KB 0755
source_xft.py File 23.93 KB 0755
source_xinit.py File 23.93 KB 0755
source_xinput-calibrator.py File 23.93 KB 0755
source_xinput.py File 23.93 KB 0755
source_xkeyboard-config.py File 23.93 KB 0755
source_xorg-docs.py File 23.93 KB 0755
source_xorg-options-editor-gtk.py File 23.93 KB 0755
source_xorg-server.py File 23.93 KB 0755
source_xorg-sgml-doctools.py File 23.93 KB 0755
source_xorg.py File 23.93 KB 0755
source_xrandr.py File 23.93 KB 0755
source_xrestop.py File 23.93 KB 0755
source_xserver-xorg-input-evdev.py File 23.93 KB 0755
source_xserver-xorg-input-joystick.py File 23.93 KB 0755
source_xserver-xorg-input-keyboard.py File 23.93 KB 0755
source_xserver-xorg-input-libinput.py File 23.93 KB 0755
source_xserver-xorg-input-mouse.py File 23.93 KB 0755
source_xserver-xorg-input-synaptics.py File 23.93 KB 0755
source_xserver-xorg-input-vmmouse.py File 23.93 KB 0755
source_xserver-xorg-input-void.py File 23.93 KB 0755
source_xserver-xorg-input-wacom.py File 23.93 KB 0755
source_xserver-xorg-video-amdgpu.py File 23.93 KB 0755
source_xserver-xorg-video-ati.py File 23.93 KB 0755
source_xserver-xorg-video-displaylink.py File 23.93 KB 0755
source_xserver-xorg-video-dummy.py File 23.93 KB 0755
source_xserver-xorg-video-fbdev.py File 23.93 KB 0755
source_xserver-xorg-video-geode.py File 23.93 KB 0755
source_xserver-xorg-video-intel.py File 23.93 KB 0755
source_xserver-xorg-video-mga.py File 23.93 KB 0755
source_xserver-xorg-video-nouveau.py File 23.93 KB 0755
source_xserver-xorg-video-nv.py File 23.93 KB 0755
source_xserver-xorg-video-openchrome.py File 23.93 KB 0755
source_xserver-xorg-video-psb.py File 23.93 KB 0755
source_xserver-xorg-video-qxl.py File 23.93 KB 0755
source_xserver-xorg-video-r128.py File 23.93 KB 0755
source_xserver-xorg-video-s3.py File 23.93 KB 0755
source_xserver-xorg-video-savage.py File 23.93 KB 0755
source_xserver-xorg-video-siliconmotion.py File 23.93 KB 0755
source_xserver-xorg-video-sis.py File 23.93 KB 0755
source_xserver-xorg-video-sisusb.py File 23.93 KB 0755
source_xserver-xorg-video-trident.py File 23.93 KB 0755
source_xserver-xorg-video-vesa.py File 23.93 KB 0755
source_xserver-xorg-video-vmware.py File 23.93 KB 0755
source_xterm.py File 23.93 KB 0755
source_xtrace.py File 23.93 KB 0755
source_xtrans.py File 23.93 KB 0755
source_xutils-dev.py File 23.93 KB 0755
source_yelp.py File 782 B 0644
systemd.py File 872 B 0644
udev.py File 455 B 0644
udisks2.py File 752 B 0644
ureadahead.py File 475 B 0644
xserver-xorg-core.py File 23.93 KB 0755