diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-04-25 11:02:01 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-04-25 11:03:10 +0200 |
commit | 82edd9da1b864681708d8688364aa44e59ac2c75 (patch) | |
tree | 2fde0e53fdb1f3d949630be28758048cf635d87f | |
parent | 8b017be51429352f850a3b533e896c9d76ff69a1 (diff) | |
download | gnutls-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-x | tests/cert-tests/pkcs12-corner-cases | 18 |
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" |