summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-04-25 11:02:01 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-04-25 11:03:10 +0200
commit82edd9da1b864681708d8688364aa44e59ac2c75 (patch)
tree2fde0e53fdb1f3d949630be28758048cf635d87f
parent8b017be51429352f850a3b533e896c9d76ff69a1 (diff)
downloadgnutls-82edd9da1b864681708d8688364aa44e59ac2c75.tar.gz
tests: added reproducer for mem leak in PKCS#12 decoding
This relates to: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1173 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rwxr-xr-xtests/cert-tests/pkcs12-corner-cases18
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/cert-tests/pkcs12-corner-cases b/tests/cert-tests/pkcs12-corner-cases
index 23e29d3241..5a0e615b3b 100755
--- a/tests/cert-tests/pkcs12-corner-cases
+++ b/tests/cert-tests/pkcs12-corner-cases
@@ -34,20 +34,34 @@ if test "${GNUTLS_FORCE_FIPS_MODE}" = 1;then
fi
if ! test -z "${VALGRIND}"; then
- VALGRIND=$(echo ${VALGRIND}|cut -d ' ' -f 1)
+# VALGRIND=$(echo ${VALGRIND}|cut -d ' ' -f 1)
VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=6"
fi
DIFF="${DIFF:-diff}"
TMPFILE="pkcs12-corner.$$.tmp"
+# Cases from oss-fuzz
+
+cpassword='1234'
+for p12 in "mem-leak.p12";do
+ set -- ${p12}
+ file="$1"
+ ${VALGRIND} "${CERTTOOL}" --p12-info --inder --password "${cpassword}" \
+ --infile "${srcdir}/data/${file}" >${TMPFILE} 2>&1
+ rc=$?
+ if test ${rc} != 0 && test ${rc} != 1; then
+ cat ${TMPFILE}
+ echo "PKCS12 FATAL ${file}"
+ exit 1
+ fi
+done
# Check corner cases in PKCS#12 decoding. Typically the structures tested fail
# in parsing, but we check against crashes, etc. These test cases were taken
# from Hubert Kario's corpus at: https://github.com/redhat-qe-security/keyfile-corpus
cpassword='Red Hat Enterprise Linux 7.4'
-
for p12 in "key-corpus-rc2-1.p12" "key-corpus-rc2-2.p12" "key-corpus-rc2-3.p12";do
set -- ${p12}
file="$1"