troubadix 24.10.1__tar.gz → 24.10.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {troubadix-24.10.1 → troubadix-24.10.2}/PKG-INFO +1 -1
- {troubadix-24.10.1 → troubadix-24.10.2}/pyproject.toml +1 -1
- troubadix-24.10.2/tests/plugins/test_script_xref_url.py +206 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/__version__.py +1 -1
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_xref_url.py +64 -4
- troubadix-24.10.1/tests/plugins/test_script_xref_url.py +0 -87
- {troubadix-24.10.1 → troubadix-24.10.2}/LICENSE +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/README.md +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/helper/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/helper/test_linguistic_exception_handler.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/helper/test_patterns.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/fail.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/fail2.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_badwords.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_copyright_text.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_copyright_year.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_creation_date.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_cve_format.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_cvss_format.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_dependencies.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_dependency_category_order.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_deprecated_dependency.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_deprecated_functions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_double_end_points.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_duplicate_oid.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_duplicated_script_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_encoding.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/fail_bad_new_line.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/fail_badwords.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/fail_name_and_copyright_newline.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/fail_name_newline.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/fail_permissions.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/fail_spelling.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail_name_and_copyright_newline.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail_solution_template.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/test.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/test_valid_oid.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/test.inc +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/test.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/warning.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/ok_permissions.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/test_oid.nasl +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_forking_nasl_functions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_get_kb_on_services.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_grammar.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_http_links_in_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_illegal_characters.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_log_messages.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_malformed_dependencies.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_misplaced_compare_in_if.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_missing_desc_exit.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_missing_tag_solution.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_multiple_re_parameters.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_newlines.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_overlong_description_lines.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_overlong_script_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_prod_svc_detect_in_vulnvt.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_qod.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_reporting_consistency.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_add_preference_type.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_calls_empty_values.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_calls_recommended.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_category.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_copyright.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_family.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_tag_form.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_tag_whitespaces.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_tags_mandatory.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_version_and_last_modification_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_script_xref_form.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_security_messages.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_set_get_kb_calls.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_solution_text.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_solution_type.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_spaces_before_dots.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_spaces_in_filename.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_spelling.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_tabs.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_todo_tbd.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_trailing_spaces_tabs.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_using_display.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_valid_oid.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_valid_script_tag_names.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_variable_redefinition_in_foreach.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_vt_file_permissions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_vt_placement.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/markers/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/markers/test_added_epoch.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/markers/test_added_release.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/markers/test_added_udeb.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/markers/test_changed_update.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/markers/test_dropped_architecture.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/test_changed_packages.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/changed_packages/test_package.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_changed_cves.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_changed_oid.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_deprecate_vts.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_file_extensions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_last_modification.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_no_solution.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/standalone_plugins/test_version_updated.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/test_argparser.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/test_helper.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/test_naslinter.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/test_reporter.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/test_results.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/tests/test_runner.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/argparser.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/codespell/codespell.additions +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/codespell/codespell.exclude +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/codespell/codespell.ignore +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/helper/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/helper/helper.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/helper/linguistic_exception_handler.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/helper/patterns.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugin.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/badwords.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/copyright_text.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/copyright_year.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/creation_date.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/cve_format.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/cvss_format.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/dependencies.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/dependency_category_order.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/deprecated_dependency.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/deprecated_functions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/double_end_points.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/duplicate_oid.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/duplicated_script_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/encoding.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/forking_nasl_functions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/get_kb_on_services.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/grammar.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/http_links_in_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/illegal_characters.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/log_messages.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/malformed_dependencies.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/misplaced_compare_in_if.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/missing_desc_exit.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/missing_tag_solution.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/multiple_re_parameters.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/newlines.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/overlong_description_lines.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/overlong_script_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/prod_svc_detect_in_vulnvt.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/qod.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/reporting_consistency.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_add_preference_type.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_calls_empty_values.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_calls_recommended.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_category.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_copyright.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_family.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_tag_form.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_tag_whitespaces.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_tags_mandatory.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_version_and_last_modification_tags.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/script_xref_form.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/security_messages.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/set_get_kb_calls.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/solution_text.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/solution_type.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/spaces_before_dots.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/spaces_in_filename.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/spelling.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/tabs.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/todo_tbd.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/trailing_spaces_tabs.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/using_display.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/valid_oid.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/valid_script_tag_names.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/variable_assigned_in_if.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/variable_redefinition_in_foreach.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/vt_file_permissions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/plugins/vt_placement.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/reporter.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/results.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/runner.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/allowed_rev_diff.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_cves.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_oid.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/changed_packages.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/__init__.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/added_epoch.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/added_release.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/added_udeb.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/changed_update.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/dropped_architecture.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/marker/marker.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/changed_packages/package.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/common.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/deprecate_vts.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/file_extensions.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/last_modification.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/no_solution.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/standalone_plugins/version_updated.py +0 -0
- {troubadix-24.10.1 → troubadix-24.10.2}/troubadix/troubadix.py +0 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# Copyright (C) 2022 Greenbone AG
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
from pathlib import Path
|
|
19
|
+
|
|
20
|
+
from tests.plugins import PluginTestCase
|
|
21
|
+
from troubadix.plugin import LinterError
|
|
22
|
+
from troubadix.plugins.script_xref_url import CheckScriptXrefUrl
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class CheckScriptXrefUrlTestCase(PluginTestCase):
|
|
26
|
+
path = Path("some/file.nasl")
|
|
27
|
+
|
|
28
|
+
def test_ok(self):
|
|
29
|
+
content = (
|
|
30
|
+
' script_xref(name:"URL", value:"http://www.example.com");\n'
|
|
31
|
+
# pylint: disable=line-too-long
|
|
32
|
+
# Various cases from https://github.com/python-validators/validators/issues/296
|
|
33
|
+
' script_xref(name:"URL", value:"https://launchpad.support.sap.com/#/notes/2718993");\n'
|
|
34
|
+
' script_xref(name:"URL", value:"https://forums.livezilla.net/index.php?/topic/10983-fg-vd-19-086-livezilla-server-is-vulnerable-to-sql-injection-ii/");\n'
|
|
35
|
+
' script_xref(name:"URL", value:"http://www.brocade.com/en/backend-content/pdf-page.html?/content/dam/common/documents/content-types/security-bulletin/brocade-security-advisory-2016-168.pdf");\n'
|
|
36
|
+
' script_xref(name:"URL", value:"https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-security/8SA-M3as7A8");\n'
|
|
37
|
+
' script_xref(name:"URL", value:"https://forum.bitdefender.com/index.php?/topic/75470-doubleagent/");\n'
|
|
38
|
+
' script_xref(name:"URL", value:"https://www.smartftp.com/forums/index.php?/topic/16425-smartftp-client-40-change-log/");\n'
|
|
39
|
+
' script_xref(name:"URL", value:"https://exchange.xforce.ibmcloud.com/#/vulnerabilities/100912");\n'
|
|
40
|
+
' script_xref(name:"URL", value:"https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer");\n'
|
|
41
|
+
' script_xref(name:"URL", value:"https://www.watchguard.com/support/release-notes/fireware/12/en-US/EN_ReleaseNotes_Fireware_12_5_9/index.html#Fireware/en-US/resolved_issues.html");\n'
|
|
42
|
+
' script_xref(name:"URL", value:"https://code.wireshark.org/review/#/c/25660/");\n'
|
|
43
|
+
' script_xref(name:"URL", value:"https://groups.google.com/forum/#!topic/kubernetes-announce/yBrFf5nmvfI");\n'
|
|
44
|
+
' script_xref(name:"URL", value:"https://issues.sonatype.org/plugins/servlet/mobile#issue/NEXUS-16870");\n'
|
|
45
|
+
' script_xref(name:"URL", value:"http://forums.livezilla.net/index.php?/topic/163-livezilla-changelog/");\n'
|
|
46
|
+
' script_xref(name:"URL", value:"https://www.watchguard.com/support/release-notes/fireware/11/en-US/EN_ReleaseNotes_Fireware_11_12_1/index.html#Fireware/en-US/resolved_issues.html%3FTocPath%3D_____13");\n'
|
|
47
|
+
' script_xref(name:"URL", value:"https://review.typo3.org/#/c/37013");\n'
|
|
48
|
+
' script_xref(name:"URL", value:"https://forums.malwarebytes.org/index.php?/topic/158251-malwarebytes-anti-exploit-hall-of-fame/");\n'
|
|
49
|
+
' script_xref(name:"URL", value:"http://speedtouch.sourceforge.io/index.php?/news.en.html");\n'
|
|
50
|
+
' script_xref(name:"URL", value:"https://support.k7computing.com/index.php?/Knowledgebase/Article/View/173/41/advisory-issued-on-6th-november-2017");\n'
|
|
51
|
+
' script_xref(name:"URL", value:"http://support.novell.com/cgi-bin/search/searchtid.cgi?/10077872.htm");\n'
|
|
52
|
+
' script_xref(name:"URL", value:"https://blog.fuzzing-project.org/54-Update-on-MatrixSSL-miscalculation-CVE-2016-8671,-incomplete-fix-for-CVE-2016-6887.html");\n'
|
|
53
|
+
' script_xref(name:"URL", value:"http://www.scaprepo.com/view.jsp?id=oval:org.secpod.oval:def:701638");\n'
|
|
54
|
+
' script_xref(name:"URL", value:"https://blog.fuzzing-project.org/46-Various-invalid-memory-reads-in-ImageMagick-WPG,-DDS,-DCM.html");\n'
|
|
55
|
+
' script_xref(name:"URL", value:"http://forum.wampserver.com/read.php?2,153491");\n'
|
|
56
|
+
' script_xref(name:"URL", value:"https://secure1.securityspace.com/smysecure/catid.html?in=FreeBSD-SA-10:04.jail.asc");\n'
|
|
57
|
+
' script_xref(name:"URL", value:"http://www.corelan.be:8800/index.php/forum/security-advisories/corelan-10-004-turboftp-server-1-00-712-dos/");\n'
|
|
58
|
+
' script_xref(name:"URL", value:"http://core.yehg.net/lab/pr0js/advisories/dll_hijacking/[flash_player]_10.1.x_insecure_dll_hijacking_(dwmapi.dll)");\n'
|
|
59
|
+
' script_xref(name:"URL", value:"http://mail-archives.apache.org/mod_mbox/perl-advocacy/200904.mbox/<ad28918e0904011458h273a71d4x408f1ed286c9dfbc@mail.gmail.com>");\n'
|
|
60
|
+
' script_xref(name:"URL", value:"https://confluence.atlassian.com/security/security-bulletin-may-21-2024-1387867145.html");\n'
|
|
61
|
+
# pylint: enable=line-too-long
|
|
62
|
+
)
|
|
63
|
+
fake_context = self.create_file_plugin_context(
|
|
64
|
+
nasl_file=self.path, file_content=content
|
|
65
|
+
)
|
|
66
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
67
|
+
|
|
68
|
+
results = list(plugin.run())
|
|
69
|
+
|
|
70
|
+
self.assertEqual(len(results), 0)
|
|
71
|
+
|
|
72
|
+
def test_exclude_inc_file(self):
|
|
73
|
+
path = Path("some/file.inc")
|
|
74
|
+
fake_context = self.create_file_plugin_context(nasl_file=path)
|
|
75
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
76
|
+
|
|
77
|
+
results = list(plugin.run())
|
|
78
|
+
|
|
79
|
+
self.assertEqual(len(results), 0)
|
|
80
|
+
|
|
81
|
+
def test_generic_invalid_url(self):
|
|
82
|
+
content = ' script_xref(name:"URL", value:"www.example.com");\n'
|
|
83
|
+
fake_context = self.create_file_plugin_context(
|
|
84
|
+
nasl_file=self.path, file_content=content
|
|
85
|
+
)
|
|
86
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
87
|
+
|
|
88
|
+
results = list(plugin.run())
|
|
89
|
+
|
|
90
|
+
self.assertEqual(len(results), 1)
|
|
91
|
+
self.assertIsInstance(results[0], LinterError)
|
|
92
|
+
self.assertEqual(
|
|
93
|
+
'script_xref(name:"URL", value:"www.example.com");: Invalid URL'
|
|
94
|
+
" value",
|
|
95
|
+
results[0].message,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
def test_invalid_url_trailing_angle_bracket(self):
|
|
99
|
+
content = ' script_xref(name:"URL", value:"https://docs.docker.com/engine/release-notes/24.0/#2407>");\n'
|
|
100
|
+
fake_context = self.create_file_plugin_context(
|
|
101
|
+
nasl_file=self.path, file_content=content
|
|
102
|
+
)
|
|
103
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
104
|
+
|
|
105
|
+
results = list(plugin.run())
|
|
106
|
+
|
|
107
|
+
self.assertEqual(len(results), 1)
|
|
108
|
+
self.assertIsInstance(results[0], LinterError)
|
|
109
|
+
self.assertEqual(
|
|
110
|
+
'script_xref(name:"URL", value:"https://docs.docker.com/engine/'
|
|
111
|
+
'release-notes/24.0/#2407>");: Invalid URL'
|
|
112
|
+
" value (trailing '>')",
|
|
113
|
+
results[0].message,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
def test_invalid_url_trailing_comma(self):
|
|
117
|
+
content = ' script_xref(name:"URL", value:"https://dev.mysql.com/doc/refman/5.7/en/mysql-stmt-fetch.html,");\n'
|
|
118
|
+
fake_context = self.create_file_plugin_context(
|
|
119
|
+
nasl_file=self.path, file_content=content
|
|
120
|
+
)
|
|
121
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
122
|
+
|
|
123
|
+
results = list(plugin.run())
|
|
124
|
+
|
|
125
|
+
self.assertEqual(len(results), 1)
|
|
126
|
+
self.assertIsInstance(results[0], LinterError)
|
|
127
|
+
self.assertEqual(
|
|
128
|
+
'script_xref(name:"URL", value:"https://dev.mysql.com/doc/refman/5.7/en/'
|
|
129
|
+
'mysql-stmt-fetch.html,");: Invalid URL'
|
|
130
|
+
" value (trailing ',')",
|
|
131
|
+
results[0].message,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
def test_invalid_url_trailing_punctuation_mark(self):
|
|
135
|
+
content = ' script_xref(name:"URL", value:"http://isec.pl/vulnerabilities/isec-0017-binfmt_elf.txt:");\n'
|
|
136
|
+
fake_context = self.create_file_plugin_context(
|
|
137
|
+
nasl_file=self.path, file_content=content
|
|
138
|
+
)
|
|
139
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
140
|
+
|
|
141
|
+
results = list(plugin.run())
|
|
142
|
+
|
|
143
|
+
self.assertEqual(len(results), 1)
|
|
144
|
+
self.assertIsInstance(results[0], LinterError)
|
|
145
|
+
self.assertEqual(
|
|
146
|
+
'script_xref(name:"URL", value:"http://isec.pl/vulnerabilities/'
|
|
147
|
+
'isec-0017-binfmt_elf.txt:");: Invalid URL'
|
|
148
|
+
" value (trailing ':')",
|
|
149
|
+
results[0].message,
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
def test_invalid_url_trailing_square_bracket(self):
|
|
153
|
+
content = (
|
|
154
|
+
' script_xref(name:"URL", value:"https://example.com/foo/bar]");\n'
|
|
155
|
+
)
|
|
156
|
+
fake_context = self.create_file_plugin_context(
|
|
157
|
+
nasl_file=self.path, file_content=content
|
|
158
|
+
)
|
|
159
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
160
|
+
|
|
161
|
+
results = list(plugin.run())
|
|
162
|
+
|
|
163
|
+
self.assertEqual(len(results), 1)
|
|
164
|
+
self.assertIsInstance(results[0], LinterError)
|
|
165
|
+
self.assertEqual(
|
|
166
|
+
'script_xref(name:"URL", value:"https://example.com/foo/bar]");: Invalid URL'
|
|
167
|
+
" value (trailing ']')",
|
|
168
|
+
results[0].message,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
def test_invalid_url_trailing_round_bracket(self):
|
|
172
|
+
content = (
|
|
173
|
+
' script_xref(name:"URL", value:"https://example.com/foo/bar)");\n'
|
|
174
|
+
)
|
|
175
|
+
fake_context = self.create_file_plugin_context(
|
|
176
|
+
nasl_file=self.path, file_content=content
|
|
177
|
+
)
|
|
178
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
179
|
+
|
|
180
|
+
results = list(plugin.run())
|
|
181
|
+
|
|
182
|
+
self.assertEqual(len(results), 1)
|
|
183
|
+
self.assertIsInstance(results[0], LinterError)
|
|
184
|
+
self.assertEqual(
|
|
185
|
+
'script_xref(name:"URL", value:"https://example.com/foo/bar)");: Invalid URL'
|
|
186
|
+
" value (trailing ')')",
|
|
187
|
+
results[0].message,
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
def test_invalid_url_wrong_ending(self):
|
|
191
|
+
content = ' script_xref(name:"URL", value:"https://confluence.atlassian.com/security/security-bulletin-may-21-2024-1387867145.htmll");\n'
|
|
192
|
+
fake_context = self.create_file_plugin_context(
|
|
193
|
+
nasl_file=self.path, file_content=content
|
|
194
|
+
)
|
|
195
|
+
plugin = CheckScriptXrefUrl(fake_context)
|
|
196
|
+
|
|
197
|
+
results = list(plugin.run())
|
|
198
|
+
|
|
199
|
+
self.assertEqual(len(results), 1)
|
|
200
|
+
self.assertIsInstance(results[0], LinterError)
|
|
201
|
+
self.assertEqual(
|
|
202
|
+
'script_xref(name:"URL", value:"https://confluence.atlassian.com/security/'
|
|
203
|
+
'security-bulletin-may-21-2024-1387867145.htmll");: Invalid URL'
|
|
204
|
+
" value (wrong file extension)",
|
|
205
|
+
results[0].message,
|
|
206
|
+
)
|
|
@@ -41,6 +41,10 @@ ALLOWED_URLS = [
|
|
|
41
41
|
"http://mail-archives.apache.org/mod_mbox/perl-advocacy/2"
|
|
42
42
|
"00904.mbox/<ad28918e0904011458h273a71d4x408f1ed286c9dfbc@mail.gmail.com>",
|
|
43
43
|
"http://yehg.net/lab/pr0js/advisories/[mybb1.6]_cross_site_scripting",
|
|
44
|
+
"http://www.live555.com/liveMedia/public/changelog.txt#[2021.08.04]",
|
|
45
|
+
"http://www.live555.com/liveMedia/public/changelog.txt#[2021.08.06]",
|
|
46
|
+
"http://www.live555.com/liveMedia/public/changelog.txt#[2021.08.09]",
|
|
47
|
+
"http://www.live555.com/liveMedia/public/changelog.txt#[2021.08.13]",
|
|
44
48
|
]
|
|
45
49
|
|
|
46
50
|
|
|
@@ -63,11 +67,67 @@ class CheckScriptXrefUrl(FileContentPlugin):
|
|
|
63
67
|
)
|
|
64
68
|
for match in matches:
|
|
65
69
|
if match:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
url_value = match.group("value")
|
|
71
|
+
if url_value in ALLOWED_URLS:
|
|
72
|
+
continue
|
|
73
|
+
|
|
74
|
+
full_xref = match.group(0)
|
|
75
|
+
|
|
76
|
+
# First a few possible malformed URLs introduced by e.g. some automatic
|
|
77
|
+
# extraction or by copy'n'paste
|
|
78
|
+
if url_value.endswith(">") and "<" not in url_value:
|
|
79
|
+
yield LinterError(
|
|
80
|
+
f"{full_xref}: Invalid URL value (trailing '>')",
|
|
81
|
+
file=nasl_file,
|
|
82
|
+
plugin=self.name,
|
|
83
|
+
)
|
|
84
|
+
continue
|
|
85
|
+
|
|
86
|
+
if url_value.endswith(","):
|
|
87
|
+
yield LinterError(
|
|
88
|
+
f"{full_xref}: Invalid URL value (trailing ',')",
|
|
89
|
+
file=nasl_file,
|
|
90
|
+
plugin=self.name,
|
|
91
|
+
)
|
|
92
|
+
continue
|
|
93
|
+
|
|
94
|
+
if url_value.endswith(":"):
|
|
95
|
+
yield LinterError(
|
|
96
|
+
f"{full_xref}: Invalid URL value (trailing ':')",
|
|
97
|
+
file=nasl_file,
|
|
98
|
+
plugin=self.name,
|
|
99
|
+
)
|
|
100
|
+
continue
|
|
101
|
+
|
|
102
|
+
if url_value.endswith("]") and "[" not in url_value:
|
|
103
|
+
yield LinterError(
|
|
104
|
+
f"{full_xref}: Invalid URL value (trailing ']')",
|
|
105
|
+
file=nasl_file,
|
|
106
|
+
plugin=self.name,
|
|
107
|
+
)
|
|
108
|
+
continue
|
|
109
|
+
|
|
110
|
+
if url_value.endswith(")") and "(" not in url_value:
|
|
111
|
+
yield LinterError(
|
|
112
|
+
f"{full_xref}: Invalid URL value (trailing ')')",
|
|
113
|
+
file=nasl_file,
|
|
114
|
+
plugin=self.name,
|
|
115
|
+
)
|
|
116
|
+
continue
|
|
117
|
+
|
|
118
|
+
if url_value.endswith(".htmll"):
|
|
119
|
+
yield LinterError(
|
|
120
|
+
f"{full_xref}: Invalid URL value (wrong file extension)",
|
|
121
|
+
file=nasl_file,
|
|
122
|
+
plugin=self.name,
|
|
123
|
+
)
|
|
124
|
+
continue
|
|
125
|
+
|
|
126
|
+
# Additional standard check via the validators package
|
|
127
|
+
if not url(url_value, strict_query=False):
|
|
69
128
|
yield LinterError(
|
|
70
|
-
f"{
|
|
129
|
+
f"{full_xref}: Invalid URL value",
|
|
71
130
|
file=nasl_file,
|
|
72
131
|
plugin=self.name,
|
|
73
132
|
)
|
|
133
|
+
continue
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2022 Greenbone AG
|
|
2
|
-
#
|
|
3
|
-
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
|
-
#
|
|
5
|
-
# This program is free software: you can redistribute it and/or modify
|
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
# GNU General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License
|
|
16
|
-
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
|
|
18
|
-
from pathlib import Path
|
|
19
|
-
|
|
20
|
-
from tests.plugins import PluginTestCase
|
|
21
|
-
from troubadix.plugin import LinterError
|
|
22
|
-
from troubadix.plugins.script_xref_url import CheckScriptXrefUrl
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class CheckScriptXrefUrlTestCase(PluginTestCase):
|
|
26
|
-
path = Path("some/file.nasl")
|
|
27
|
-
|
|
28
|
-
def test_ok(self):
|
|
29
|
-
content = (
|
|
30
|
-
' script_xref(name:"URL", value:"http://www.example.com");\n'
|
|
31
|
-
# pylint: disable=line-too-long
|
|
32
|
-
# Various cases from https://github.com/python-validators/validators/issues/296
|
|
33
|
-
' script_xref(name:"URL", value:"https://launchpad.support.sap.com/#/notes/2718993");\n'
|
|
34
|
-
' script_xref(name:"URL", value:"https://forums.livezilla.net/index.php?/topic/10983-fg-vd-19-086-livezilla-server-is-vulnerable-to-sql-injection-ii/");\n'
|
|
35
|
-
' script_xref(name:"URL", value:"http://www.brocade.com/en/backend-content/pdf-page.html?/content/dam/common/documents/content-types/security-bulletin/brocade-security-advisory-2016-168.pdf");\n'
|
|
36
|
-
' script_xref(name:"URL", value:"https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-security/8SA-M3as7A8");\n'
|
|
37
|
-
' script_xref(name:"URL", value:"https://forum.bitdefender.com/index.php?/topic/75470-doubleagent/");\n'
|
|
38
|
-
' script_xref(name:"URL", value:"https://www.smartftp.com/forums/index.php?/topic/16425-smartftp-client-40-change-log/");\n'
|
|
39
|
-
' script_xref(name:"URL", value:"https://exchange.xforce.ibmcloud.com/#/vulnerabilities/100912");\n'
|
|
40
|
-
' script_xref(name:"URL", value:"https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer");\n'
|
|
41
|
-
' script_xref(name:"URL", value:"https://www.watchguard.com/support/release-notes/fireware/12/en-US/EN_ReleaseNotes_Fireware_12_5_9/index.html#Fireware/en-US/resolved_issues.html");\n'
|
|
42
|
-
' script_xref(name:"URL", value:"https://code.wireshark.org/review/#/c/25660/");\n'
|
|
43
|
-
' script_xref(name:"URL", value:"https://groups.google.com/forum/#!topic/kubernetes-announce/yBrFf5nmvfI");\n'
|
|
44
|
-
' script_xref(name:"URL", value:"https://issues.sonatype.org/plugins/servlet/mobile#issue/NEXUS-16870");\n'
|
|
45
|
-
' script_xref(name:"URL", value:"http://forums.livezilla.net/index.php?/topic/163-livezilla-changelog/");\n'
|
|
46
|
-
' script_xref(name:"URL", value:"https://www.watchguard.com/support/release-notes/fireware/11/en-US/EN_ReleaseNotes_Fireware_11_12_1/index.html#Fireware/en-US/resolved_issues.html%3FTocPath%3D_____13");\n'
|
|
47
|
-
' script_xref(name:"URL", value:"https://review.typo3.org/#/c/37013");\n'
|
|
48
|
-
' script_xref(name:"URL", value:"https://forums.malwarebytes.org/index.php?/topic/158251-malwarebytes-anti-exploit-hall-of-fame/");\n'
|
|
49
|
-
' script_xref(name:"URL", value:"http://speedtouch.sourceforge.io/index.php?/news.en.html");\n'
|
|
50
|
-
' script_xref(name:"URL", value:"https://support.k7computing.com/index.php?/Knowledgebase/Article/View/173/41/advisory-issued-on-6th-november-2017");\n'
|
|
51
|
-
' script_xref(name:"URL", value:"http://support.novell.com/cgi-bin/search/searchtid.cgi?/10077872.htm");\n'
|
|
52
|
-
# pylint: enable=line-too-long
|
|
53
|
-
)
|
|
54
|
-
fake_context = self.create_file_plugin_context(
|
|
55
|
-
nasl_file=self.path, file_content=content
|
|
56
|
-
)
|
|
57
|
-
plugin = CheckScriptXrefUrl(fake_context)
|
|
58
|
-
|
|
59
|
-
results = list(plugin.run())
|
|
60
|
-
|
|
61
|
-
self.assertEqual(len(results), 0)
|
|
62
|
-
|
|
63
|
-
def test_exclude_inc_file(self):
|
|
64
|
-
path = Path("some/file.inc")
|
|
65
|
-
fake_context = self.create_file_plugin_context(nasl_file=path)
|
|
66
|
-
plugin = CheckScriptXrefUrl(fake_context)
|
|
67
|
-
|
|
68
|
-
results = list(plugin.run())
|
|
69
|
-
|
|
70
|
-
self.assertEqual(len(results), 0)
|
|
71
|
-
|
|
72
|
-
def test_invalid_url(self):
|
|
73
|
-
content = ' script_xref(name:"URL", value:"www.example.com");\n'
|
|
74
|
-
fake_context = self.create_file_plugin_context(
|
|
75
|
-
nasl_file=self.path, file_content=content
|
|
76
|
-
)
|
|
77
|
-
plugin = CheckScriptXrefUrl(fake_context)
|
|
78
|
-
|
|
79
|
-
results = list(plugin.run())
|
|
80
|
-
|
|
81
|
-
self.assertEqual(len(results), 1)
|
|
82
|
-
self.assertIsInstance(results[0], LinterError)
|
|
83
|
-
self.assertEqual(
|
|
84
|
-
'script_xref(name:"URL", value:"www.example.com");: Invalid URL'
|
|
85
|
-
" value",
|
|
86
|
-
results[0].message,
|
|
87
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl
RENAMED
|
File without changes
|
|
File without changes
|
{troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl
RENAMED
|
File without changes
|
|
File without changes
|
{troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl
RENAMED
|
File without changes
|
{troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl
RENAMED
|
File without changes
|
{troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_files/nasl/21.04/runner/test.nasl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-24.10.1 → troubadix-24.10.2}/tests/plugins/test_variable_redefinition_in_foreach.py
RENAMED
|
File without changes
|