Beispiel #1
0
def main(bugs: list, main_plugin: MainPlugin or MetaPlugin,
         **kwargs: dict) -> None:
    """
    Run all given bugs
    :param bugs: bugs to run
    :param main_plugin: the main plugin enabled for the run
    :param kwargs: additional information for bug triggering
    """
    change_coredump_filter()

    if isinstance(main_plugin, MetaPlugin):
        plugins = before_run(main_plugin=main_plugin, bugs=bugs, **kwargs)
        main_plugins = plugins["main_plugins"]
        kwargs["analysis_plugins"] = plugins["analysis_plugins"]
    else:
        main_plugins = [main_plugin]

    return_values = []
    exceptions = []
    for plugin in main_plugins:
        for bug in bugs:
            try:
                logger.start_new_log_section(bug, "triggering")
                return_values.append(
                    trigger_bug(bug=bug, main_plugin=plugin, **kwargs))
            except (PluginIncompatibleException,
                    ProgramNotInstalledException) as exc:
                logging.warning(exc)
                exceptions.append(exc)

    err = None
    if isinstance(main_plugin, MetaPlugin):
        err = after_run(main_plugin=main_plugin,
                        plugins=main_plugins,
                        bugs=bugs,
                        return_values=return_values,
                        exceptions=exceptions,
                        **kwargs)
    elif len(exceptions):
        err = 1

    return err or any(return_values)
Beispiel #2
0
def main(bugs: list, main_plugin: MainPlugin or MetaPlugin, **kwargs: dict) -> None:
    """
    Run all given bugs
    :param bugs: bugs to run
    :param main_plugin: the main plugin enabled for the run
    :param kwargs: additional information for bug triggering
    """
    change_coredump_filter()

    if isinstance(main_plugin, MetaPlugin):
        plugins = before_run(main_plugin=main_plugin, bugs=bugs, **kwargs)
        main_plugins = plugins["main_plugins"]
        kwargs["analysis_plugins"] = plugins["analysis_plugins"]
    else:
        main_plugins = [main_plugin]

    return_values = []
    exceptions = []
    for plugin in main_plugins:
        for bug in bugs:
            try:
                logger.start_new_log_section(bug, "triggering")
                return_values.append(trigger_bug(bug=bug, main_plugin=plugin, **kwargs))
            except (PluginIncompatibleException, ProgramNotInstalledException) as exc:
                logging.warning(exc)
                exceptions.append(exc)

    err = None
    if isinstance(main_plugin, MetaPlugin):
        err = after_run(
            main_plugin=main_plugin,
            plugins=main_plugins,
            bugs=bugs,
            return_values=return_values,
            exceptions=exceptions,
            **kwargs
        )
    elif len(exceptions):
        err = 1

    return err or any(return_values)
Beispiel #3
0
 def pre_run(self):
     """ Sets up coredumps options before the run """
     setup_coredumps()
     change_coredump_filter()
Beispiel #4
0
 def pre_run(self):
     """ Sets up coredumps options before the run """
     setup_coredumps()
     change_coredump_filter()