From: Simon Josefsson Date: Sun, 22 Aug 2004 13:54:09 +0000 (+0000) Subject: (print_certificate_info): Don't crash on large X.509 extensions X-Git-Tag: gnutls_1_1_18~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0891fa9d33db78c8bf635a37730fcda4fcd45e96;p=thirdparty%2Fgnutls.git (print_certificate_info): Don't crash on large X.509 extensions (thanks to PKITS test suite). Also output ASCII representation of printable extension data (some extension contain humanly readable strings). --- diff --git a/src/certtool.c b/src/certtool.c index 8d312af799..d95f425df5 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include "certtool-gaa.h" @@ -1229,13 +1230,19 @@ static void print_certificate_info(gnutls_x509_crt crt, FILE * out, else fprintf(out, "\n"); - print = printable; + fprintf(out, "\t\tDER Data: "); for (j = 0; j < size; j++) { - sprintf(print, "%.2x", (unsigned char) buffer[j]); - print += 2; + fprintf(out, "%.2x", (unsigned char) buffer[j]); } - fprintf(out, "\t\tDER Data: %s\n", printable); - + fprintf(out, "\n"); + fprintf(out, "\t\tASCII: "); + for (j = 0; j < size; j++) { + if (isprint (buffer[j])) + fprintf(out, "%c", (unsigned char) buffer[j]); + else + fprintf(out, "."); + } + fprintf(out, "\n"); } ret = 0;