Blame SOURCES/openscap-1.3.6-PR-1788-test-rhbz1959570.patch

85f807
From 05faede8f6602b7b71d71fd965276225a986fb1f Mon Sep 17 00:00:00 2001
85f807
From: =?UTF-8?q?Jan=20=C4=8Cern=C3=BD?= <jcerny@redhat.com>
85f807
Date: Wed, 28 Jul 2021 13:06:25 +0200
85f807
Subject: [PATCH] Add a regression test for rhbz#1959570
85f807
85f807
The bug was a segmentation fault in filehash58 probe which happened
85f807
in openscap-1.3.3-6.el8_3.
85f807
85f807
The bug was fixed by https://github.com/OpenSCAP/openscap/pull/1779
85f807
and this patch adds a very small test.
85f807
---
85f807
 tests/probes/filehash58/CMakeLists.txt        |  1 +
85f807
 .../probes/filehash58/rhbz1959570_segfault.sh | 19 +++++++++
85f807
 .../rhbz1959570_segfault_reproducer.xml       | 39 +++++++++++++++++++
85f807
 3 files changed, 59 insertions(+)
85f807
 create mode 100755 tests/probes/filehash58/rhbz1959570_segfault.sh
85f807
 create mode 100644 tests/probes/filehash58/rhbz1959570_segfault_reproducer.xml
85f807
85f807
diff --git a/tests/probes/filehash58/CMakeLists.txt b/tests/probes/filehash58/CMakeLists.txt
85f807
index b26d8171fb..cdec0792eb 100644
85f807
--- a/tests/probes/filehash58/CMakeLists.txt
85f807
+++ b/tests/probes/filehash58/CMakeLists.txt
85f807
@@ -1,3 +1,4 @@
85f807
 if(ENABLE_PROBES_INDEPENDENT)
85f807
 	add_oscap_test("test_probes_filehash58.sh")
85f807
+	add_oscap_test("rhbz1959570_segfault.sh")
85f807
 endif()
85f807
diff --git a/tests/probes/filehash58/rhbz1959570_segfault.sh b/tests/probes/filehash58/rhbz1959570_segfault.sh
85f807
new file mode 100755
85f807
index 0000000000..0c32cc79f1
85f807
--- /dev/null
85f807
+++ b/tests/probes/filehash58/rhbz1959570_segfault.sh
85f807
@@ -0,0 +1,19 @@
85f807
+#!/usr/bin/env bash
85f807
+
85f807
+# Copyright 2021 Red Hat Inc., Durham, North Carolina.
85f807
+# All Rights Reserved.
85f807
+#
85f807
+# OpenSCAP Probes Test Suite.
85f807
+#
85f807
+# Authors:
85f807
+#      Jan Černý, <jcerny@redhat.com>
85f807
+
85f807
+set -e -o pipefail
85f807
+. $builddir/tests/test_common.sh
85f807
+
85f807
+# Test Cases
85f807
+
85f807
+stderr="$(mktemp)"
85f807
+$OSCAP oval eval --id oval:x:def:1 "$srcdir/rhbz1959570_segfault_reproducer.xml" 2> "$stderr"
85f807
+[ ! -s "$stderr" ]
85f807
+rm "$stderr"
85f807
diff --git a/tests/probes/filehash58/rhbz1959570_segfault_reproducer.xml b/tests/probes/filehash58/rhbz1959570_segfault_reproducer.xml
85f807
new file mode 100644
85f807
index 0000000000..4b3fc4863a
85f807
--- /dev/null
85f807
+++ b/tests/probes/filehash58/rhbz1959570_segfault_reproducer.xml
85f807
@@ -0,0 +1,39 @@
85f807
+
85f807
+<oval-def:oval_definitions xmlns:ind="http://oval.mitre.org/XMLSchema/oval-definitions-5#independent" xmlns:linux="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux" xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5" xmlns:oval-def="http://oval.mitre.org/XMLSchema/oval-definitions-5" xmlns:unix="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://oval.mitre.org/XMLSchema/oval-common-5 oval-common-schema.xsd         http://oval.mitre.org/XMLSchema/oval-definitions-5 oval-definitions-schema.xsd         http://oval.mitre.org/XMLSchema/oval-definitions-5#independent independent-definitions-schema.xsd         http://oval.mitre.org/XMLSchema/oval-definitions-5#unix unix-definitions-schema.xsd         http://oval.mitre.org/XMLSchema/oval-definitions-5#linux linux-definitions-schema.xsd">
85f807
+  <oval-def:generator>
85f807
+    <oval:product_name>jcerny</oval:product_name>
85f807
+    <oval:product_version>1</oval:product_version>
85f807
+    <oval:schema_version>5.11</oval:schema_version>
85f807
+    <oval:timestamp>2021-07-28T07:40:55</oval:timestamp>
85f807
+  </oval-def:generator>
85f807
+  <oval-def:definitions>
85f807
+    <oval-def:definition class="compliance" id="oval:x:def:1" version="1">
85f807
+      <oval-def:metadata>
85f807
+        <oval-def:title>title</oval-def:title>
85f807
+        <oval-def:description>description</oval-def:description>
85f807
+      </oval-def:metadata>
85f807
+      <oval-def:criteria>
85f807
+        <oval-def:criterion comment="comment" test_ref="oval:x:tst:1"/>
85f807
+      </oval-def:criteria>
85f807
+    </oval-def:definition>
85f807
+  </oval-def:definitions>
85f807
+  <oval-def:tests>
85f807
+    <ind:filehash58_test check="all" check_existence="all_exist" comment="comment" id="oval:x:tst:1" version="1">
85f807
+      <ind:object object_ref="oval:x:obj:1"/>
85f807
+      <ind:state state_ref="oval:x:ste:1"/>
85f807
+    </ind:filehash58_test>
85f807
+  </oval-def:tests>
85f807
+  <oval-def:objects>
85f807
+    <ind:filehash58_object id="oval:x:obj:1" version="1">
85f807
+      <ind:filepath>/etc/os-release</ind:filepath>
85f807
+      <ind:hash_type>SHA-256</ind:hash_type>
85f807
+    </ind:filehash58_object>
85f807
+  </oval-def:objects>
85f807
+  <oval-def:states>
85f807
+    <ind:filehash58_state id="oval:x:ste:1" version="1">
85f807
+      <ind:filepath>/etc/os-release</ind:filepath>
85f807
+      <ind:hash_type>SHA-256</ind:hash_type>
85f807
+      <ind:hash>6488c757642cd493da09dd78ee27f039711a1ad79039900970553772fd2106af</ind:hash>
85f807
+    </ind:filehash58_state>
85f807
+  </oval-def:states>
85f807
+</oval-def:oval_definitions>