#!/bin/sh
#
# Test CVE-2017-14121

setUp() {
	uudecode > unrar-gpl-nullptr.rar <<EOF
begin-base64 644 -
UmFyIRoHAM+QcwAADQAAAAAAAABvvXQAgCUABQAAAAUAAAAAm7HC/4+CR0YU
AAAAAAAAb70=
====
EOF
}

tearDown() {
	rm -f unrar-gpl-nullptr.rar
}

testList() {
	valgrind --error-exitcode=121 --track-origins=yes unrar-free --list unrar-gpl-nullptr.rar
	assertNotEquals "Valgrind status code" 121 $?
}

testExtract() {
        catchsegv unrar-free --extract unrar-gpl-nullptr.rar > "$AUTOPKGTEST_TMP"/0004-CVE-2017-14121.log 2>&1
	grep -q '*** Segmentation fault' "$AUTOPKGTEST_TMP"/0004-CVE-2017-14121.log
	assertNotEquals "catchsegv value" 0 $?

	valgrind --error-exitcode=121 --track-origins=yes unrar-free --extract unrar-gpl-nullptr.rar
	assertNotEquals "Valgrind status code" 121 $?
}

. /usr/bin/shunit2
