1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#!/bin/bash
DUMPASN1=${1:-dumpasn1}
# this test evaluates a sample certificate suggested by Peter Gutmann
# in https://bugs.debian.org/348856#27
# Without debian/patches/bug348856.patch, valgrind will likely fail with:
# 48 17: SEQUENCE {
# 50 3: OBJECT IDENTIFIER localityName (2 5 4 7)
# ==2818855== Conditional jump or move depends on uninitialised value(s)
# ==2818855== at 0x4840D5E: wcsnlen (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
# ==2818855== by 0x491E116: wcsrtombs (wcsrtombs.c:104)
# ==2818855== by 0x48B3FE0: wcstombs (wcstombs.c:34)
# ==2818855== by 0x10BCD2: displayUnicode (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10CE8B: displayString (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10F424: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10FBF2: printAsn1 (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E27E: printConstructed (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E8CF: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10FBF2: printAsn1 (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E27E: printConstructed (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E8CF: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855==
# ==2818855== Conditional jump or move depends on uninitialised value(s)
# ==2818855== at 0x48A0511: internal_ascii_loop (loop.c:336)
# ==2818855== by 0x48A0511: __gconv_transform_internal_ascii (skeleton.c:620)
# ==2818855== by 0x491E14D: wcsrtombs (wcsrtombs.c:110)
# ==2818855== by 0x48B3FE0: wcstombs (wcstombs.c:34)
# ==2818855== by 0x10BCD2: displayUnicode (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10CE8B: displayString (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10F424: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10FBF2: printAsn1 (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E27E: printConstructed (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E8CF: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10FBF2: printAsn1 (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E27E: printConstructed (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E8CF: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855==
# ==2818855== Conditional jump or move depends on uninitialised value(s)
# ==2818855== at 0x48A0690: internal_ascii_loop (loop.c:336)
# ==2818855== by 0x48A0690: __gconv_transform_internal_ascii (skeleton.c:620)
# ==2818855== by 0x491E14D: wcsrtombs (wcsrtombs.c:110)
# ==2818855== by 0x48B3FE0: wcstombs (wcstombs.c:34)
# ==2818855== by 0x10BCD2: displayUnicode (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10CE8B: displayString (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10F424: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10FBF2: printAsn1 (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E27E: printConstructed (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E8CF: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10FBF2: printAsn1 (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E27E: printConstructed (in …/dumpasn1/dumpasn1)
# ==2818855== by 0x10E8CF: printASN1object (in …/dumpasn1/dumpasn1)
# ==2818855==
# 55 10: BMPString '...r.h.u.s'
# : }
# : }
< debian/test-data/bmp-strings.crt grep -v ^- | base64 -d | \
valgrind --error-exitcode=17 -- "$DUMPASN1" -
|