diff options
author | root <root@rshg054.dnsready.net> | 2012-11-27 02:19:29 -0800 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-11-27 02:19:29 -0800 |
commit | c008601effc878e60852f7928ddadcf5a16eb851 (patch) | |
tree | 50f2e1a3e779a9a93deadc396c29f80c6f24de0e /extra/libtasn1 | |
parent | d41782ebd2416faf39268ec9a2c3242430390308 (diff) |
Tue Nov 27 02:14:24 PST 2012
Diffstat (limited to 'extra/libtasn1')
-rw-r--r-- | extra/libtasn1/PKGBUILD | 17 | ||||
-rw-r--r-- | extra/libtasn1/buffer_overflow_fix.diff | 75 |
2 files changed, 87 insertions, 5 deletions
diff --git a/extra/libtasn1/PKGBUILD b/extra/libtasn1/PKGBUILD index 699bae051..3b7021f5e 100644 --- a/extra/libtasn1/PKGBUILD +++ b/extra/libtasn1/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 170031 2012-10-31 05:15:58Z andyrtr $ +# $Id: PKGBUILD 172017 2012-11-26 14:46:50Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=libtasn1 -pkgver=3.0 +pkgver=3.1 pkgrel=1 pkgdesc="The ASN.1 library used in GNUTLS" arch=('i686' 'x86_64') @@ -12,12 +12,19 @@ url="http://www.gnu.org/software/libtasn1/" depends=('glibc' 'texinfo') options=('!libtool') install=libtasn1.install -source=(http://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz{,.sig}) -sha1sums=('0ce12f8b0460ae6eabf2a608506dbd337bf78a71' - '48abf083dc9d36cc64f0d80cebd3da1dbc47d557') +source=(http://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz{,.sig} + buffer_overflow_fix.diff) +md5sums=('a3c713c41a9a73851235dc37051be46f' + '43500f54858ffe021e5fd20896b165ad' + '4c9e248a4198d9710bf2f822a7c447a5') build() { cd "${srcdir}/${pkgname}-${pkgver}" + + # corrected possible buffer overflow in parser errors. + # http://git.savannah.gnu.org/gitweb/?p=libtasn1.git;a=commit;h=aa6e97f68d6c8d06f531d9b6bb462dc1c0720f77 + patch -Np1 -i ${srcdir}/buffer_overflow_fix.diff + ./configure --prefix=/usr \ --with-packager=Archlinux \ --with-packager-bug-reports="http://bugs.archlinux.org/" \ diff --git a/extra/libtasn1/buffer_overflow_fix.diff b/extra/libtasn1/buffer_overflow_fix.diff new file mode 100644 index 000000000..c1e71015c --- /dev/null +++ b/extra/libtasn1/buffer_overflow_fix.diff @@ -0,0 +1,75 @@ +From aa6e97f68d6c8d06f531d9b6bb462dc1c0720f77 Mon Sep 17 00:00:00 2001 +From: Nikos Mavrogiannopoulos <nmav@gnutls.org> +Date: Sun, 25 Nov 2012 14:16:24 +0100 +Subject: [PATCH] corrected possible buffer overflow in parser errors. + +--- + lib/ASN1.c | 6 +++--- + lib/ASN1.y | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/lib/ASN1.c b/lib/ASN1.c +index 2a60527..df6fb64 100644 +--- a/lib/ASN1.c ++++ b/lib/ASN1.c +@@ -119,7 +119,7 @@ static unsigned int line_number; /* line number describing the + parser position inside the + file */ + static char last_error[ASN1_MAX_ERROR_DESCRIPTION_SIZE] = ""; +-static char last_error_token[ASN1_MAX_NAME_SIZE+1] = ""; /* used when expected errors occur */ ++static char last_error_token[ASN1_MAX_ERROR_DESCRIPTION_SIZE+1] = ""; /* used when expected errors occur */ + static char last_token[ASN1_MAX_NAME_SIZE+1] = ""; /* last token find in the file + to parse before the 'parse + error' */ +@@ -3283,7 +3283,7 @@ _asn1_yyerror (const char *s) + strcmp (last_token, "TeletexString") == 0 || + strcmp (last_token, "BMPString") == 0) + { +- snprintf (last_error_token, ASN1_MAX_ERROR_DESCRIPTION_SIZE, ++ snprintf (last_error_token, sizeof(last_error_token), + "%s", last_token); + fprintf(stderr, + "%s:%u: Warning: %s is a built-in ASN.1 type.\n", +@@ -3294,7 +3294,7 @@ _asn1_yyerror (const char *s) + + if (result_parse != ASN1_NAME_TOO_LONG) + { +- snprintf (last_error, ASN1_MAX_ERROR_DESCRIPTION_SIZE, ++ snprintf (last_error, sizeof(last_error), + "%s:%u: Error: %s near '%s'", file_name, + line_number, s, last_token); + result_parse = ASN1_SYNTAX_ERROR; +diff --git a/lib/ASN1.y b/lib/ASN1.y +index 874eb13..e0add54 100644 +--- a/lib/ASN1.y ++++ b/lib/ASN1.y +@@ -42,7 +42,7 @@ static unsigned int line_number; /* line number describing the + parser position inside the + file */ + static char last_error[ASN1_MAX_ERROR_DESCRIPTION_SIZE] = ""; +-static char last_error_token[ASN1_MAX_NAME_SIZE+1] = ""; /* used when expected errors occur */ ++static char last_error_token[ASN1_MAX_ERROR_DESCRIPTION_SIZE+1] = ""; /* used when expected errors occur */ + static char last_token[ASN1_MAX_NAME_SIZE+1] = ""; /* last token find in the file + to parse before the 'parse + error' */ +@@ -869,7 +869,7 @@ _asn1_yyerror (const char *s) + strcmp (last_token, "TeletexString") == 0 || + strcmp (last_token, "BMPString") == 0) + { +- snprintf (last_error_token, ASN1_MAX_ERROR_DESCRIPTION_SIZE, ++ snprintf (last_error_token, sizeof(last_error_token), + "%s", last_token); + fprintf(stderr, + "%s:%u: Warning: %s is a built-in ASN.1 type.\n", +@@ -880,7 +880,7 @@ _asn1_yyerror (const char *s) + + if (result_parse != ASN1_NAME_TOO_LONG) + { +- snprintf (last_error, ASN1_MAX_ERROR_DESCRIPTION_SIZE, ++ snprintf (last_error, sizeof(last_error), + "%s:%u: Error: %s near '%s'", file_name, + line_number, s, last_token); + result_parse = ASN1_SYNTAX_ERROR; +-- +1.7.2.5 + |