[arch-commits] Commit in libxslt/repos (3 files)
Jan de Groot
jgc at archlinux.org
Sat Feb 14 23:59:16 UTC 2009
Date: Saturday, February 14, 2009 @ 18:59:16
Author: jgc
Revision: 26967
Merged revisions 26932 via svnmerge from
svn+ssh://svn.archlinux.org/srv/svn-packages/libxslt/trunk
........
r26932 | jgc | 2009-02-14 19:43:05 +0000 (Sat, 14 Feb 2009) | 2 lines
upgpkg: libxslt 1.1.24-2
Fix FS#12691
........
Added:
libxslt/repos/extra-i686/libxslt-1.1.24-exslt_crypt.patch
(from rev 26932, libxslt/trunk/libxslt-1.1.24-exslt_crypt.patch)
Modified:
libxslt/repos/extra-i686/ (properties)
libxslt/repos/extra-i686/PKGBUILD
----------------------------------+
PKGBUILD | 21 ++---
libxslt-1.1.24-exslt_crypt.patch | 152 +++++++++++++++++++++++++++++++++++++
2 files changed, 164 insertions(+), 9 deletions(-)
Property changes on: libxslt/repos/extra-i686
___________________________________________________________________
Modified: svnmerge-integrated
- /libxslt/trunk:1-2321
+ /libxslt/trunk:1-26966
Modified: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD 2009-02-14 23:57:37 UTC (rev 26966)
+++ extra-i686/PKGBUILD 2009-02-14 23:59:16 UTC (rev 26967)
@@ -4,22 +4,25 @@
pkgname=libxslt
pkgver=1.1.24
-pkgrel=1
+pkgrel=2
pkgdesc="XML stylesheet transformation library"
arch=('i686' 'x86_64')
url="http://xmlsoft.org/XSLT/"
license=('custom')
-depends=('libxml2>=2.6.30' 'libgcrypt')
-makedepends=('python>=2.5')
+depends=('libxml2>=2.7.3' 'libgcrypt>=1.4.3')
+makedepends=('python>=2.6')
options=('!libtool')
-source=(ftp://xmlsoft.org/libxslt/${pkgname}-${pkgver}.tar.gz)
-md5sums=('e83ec5d27fc4c10c6f612879bea9a153')
-sha1sums=('b5402e24abff5545ed76f6a55049cbebc664bd58')
+source=(ftp://xmlsoft.org/libxslt/${pkgname}-${pkgver}.tar.gz
+ libxslt-1.1.24-exslt_crypt.patch)
+md5sums=('e83ec5d27fc4c10c6f612879bea9a153'
+ 'bf43a510a37fbca661c7ef3dd1eddfea')
build() {
- cd ${startdir}/src/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/libxslt-1.1.24-exslt_crypt.patch" || return 1
./configure --prefix=/usr || return 1
make || return 1
- make DESTDIR=${startdir}/pkg install || return 1
- install -D -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
}
Copied: libxslt/repos/extra-i686/libxslt-1.1.24-exslt_crypt.patch (from rev 26932, libxslt/trunk/libxslt-1.1.24-exslt_crypt.patch)
===================================================================
--- extra-i686/libxslt-1.1.24-exslt_crypt.patch (rev 0)
+++ extra-i686/libxslt-1.1.24-exslt_crypt.patch 2009-02-14 23:59:16 UTC (rev 26967)
@@ -0,0 +1,152 @@
+Index: libexslt/crypto.c
+===================================================================
+--- libexslt/crypto.c (revision 1479)
++++ libexslt/crypto.c (working copy)
+@@ -595,11 +595,13 @@ exsltCryptoRc4EncryptFunction (xmlXPathP
+ int str_len = 0, bin_len = 0, hex_len = 0;
+ xmlChar *key = NULL, *str = NULL, *padkey = NULL;
+ xmlChar *bin = NULL, *hex = NULL;
++ xsltTransformContextPtr tctxt = NULL;
+
+- if ((nargs < 1) || (nargs > 3)) {
++ if (nargs != 2) {
+ xmlXPathSetArityError (ctxt);
+ return;
+ }
++ tctxt = xsltXPathGetTransformContext(ctxt);
+
+ str = xmlXPathPopString (ctxt);
+ str_len = xmlUTF8Strlen (str);
+@@ -611,7 +613,7 @@ exsltCryptoRc4EncryptFunction (xmlXPathP
+ }
+
+ key = xmlXPathPopString (ctxt);
+- key_len = xmlUTF8Strlen (str);
++ key_len = xmlUTF8Strlen (key);
+
+ if (key_len == 0) {
+ xmlXPathReturnEmptyString (ctxt);
+@@ -620,15 +622,33 @@ exsltCryptoRc4EncryptFunction (xmlXPathP
+ return;
+ }
+
+- padkey = xmlMallocAtomic (RC4_KEY_LENGTH);
++ padkey = xmlMallocAtomic (RC4_KEY_LENGTH + 1);
++ if (padkey == NULL) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: Failed to allocate padkey\n");
++ tctxt->state = XSLT_STATE_STOPPED;
++ xmlXPathReturnEmptyString (ctxt);
++ goto done;
++ }
++ memset(padkey, 0, RC4_KEY_LENGTH + 1);
++
+ key_size = xmlUTF8Strsize (key, key_len);
++ if ((key_size > RC4_KEY_LENGTH) || (key_size < 0)) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: key size too long or key broken\n");
++ tctxt->state = XSLT_STATE_STOPPED;
++ xmlXPathReturnEmptyString (ctxt);
++ goto done;
++ }
+ memcpy (padkey, key, key_size);
+- memset (padkey + key_size, '\0', sizeof (padkey));
+
+ /* encrypt it */
+ bin_len = str_len;
+ bin = xmlStrdup (str);
+ if (bin == NULL) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: Failed to allocate string\n");
++ tctxt->state = XSLT_STATE_STOPPED;
+ xmlXPathReturnEmptyString (ctxt);
+ goto done;
+ }
+@@ -638,6 +658,9 @@ exsltCryptoRc4EncryptFunction (xmlXPathP
+ hex_len = str_len * 2 + 1;
+ hex = xmlMallocAtomic (hex_len);
+ if (hex == NULL) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: Failed to allocate result\n");
++ tctxt->state = XSLT_STATE_STOPPED;
+ xmlXPathReturnEmptyString (ctxt);
+ goto done;
+ }
+@@ -670,11 +693,13 @@ exsltCryptoRc4DecryptFunction (xmlXPathP
+ int str_len = 0, bin_len = 0, ret_len = 0;
+ xmlChar *key = NULL, *str = NULL, *padkey = NULL, *bin =
+ NULL, *ret = NULL;
++ xsltTransformContextPtr tctxt = NULL;
+
+- if ((nargs < 1) || (nargs > 3)) {
++ if (nargs != 2) {
+ xmlXPathSetArityError (ctxt);
+ return;
+ }
++ tctxt = xsltXPathGetTransformContext(ctxt);
+
+ str = xmlXPathPopString (ctxt);
+ str_len = xmlUTF8Strlen (str);
+@@ -686,7 +711,7 @@ exsltCryptoRc4DecryptFunction (xmlXPathP
+ }
+
+ key = xmlXPathPopString (ctxt);
+- key_len = xmlUTF8Strlen (str);
++ key_len = xmlUTF8Strlen (key);
+
+ if (key_len == 0) {
+ xmlXPathReturnEmptyString (ctxt);
+@@ -695,22 +720,51 @@ exsltCryptoRc4DecryptFunction (xmlXPathP
+ return;
+ }
+
+- padkey = xmlMallocAtomic (RC4_KEY_LENGTH);
++ padkey = xmlMallocAtomic (RC4_KEY_LENGTH + 1);
++ if (padkey == NULL) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: Failed to allocate padkey\n");
++ tctxt->state = XSLT_STATE_STOPPED;
++ xmlXPathReturnEmptyString (ctxt);
++ goto done;
++ }
++ memset(padkey, 0, RC4_KEY_LENGTH + 1);
+ key_size = xmlUTF8Strsize (key, key_len);
++ if ((key_size > RC4_KEY_LENGTH) || (key_size < 0)) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: key size too long or key broken\n");
++ tctxt->state = XSLT_STATE_STOPPED;
++ xmlXPathReturnEmptyString (ctxt);
++ goto done;
++ }
+ memcpy (padkey, key, key_size);
+- memset (padkey + key_size, '\0', sizeof (padkey));
+
+ /* decode hex to binary */
+ bin_len = str_len;
+ bin = xmlMallocAtomic (bin_len);
++ if (bin == NULL) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: Failed to allocate string\n");
++ tctxt->state = XSLT_STATE_STOPPED;
++ xmlXPathReturnEmptyString (ctxt);
++ goto done;
++ }
+ ret_len = exsltCryptoHex2Bin (str, str_len, bin, bin_len);
+
+ /* decrypt the binary blob */
+ ret = xmlMallocAtomic (ret_len);
++ if (ret == NULL) {
++ xsltTransformError(tctxt, NULL, tctxt->inst,
++ "exsltCryptoRc4EncryptFunction: Failed to allocate result\n");
++ tctxt->state = XSLT_STATE_STOPPED;
++ xmlXPathReturnEmptyString (ctxt);
++ goto done;
++ }
+ PLATFORM_RC4_DECRYPT (ctxt, padkey, bin, ret_len, ret, ret_len);
+
+ xmlXPathReturnString (ctxt, ret);
+
++done:
+ if (key != NULL)
+ xmlFree (key);
+ if (str != NULL)
More information about the arch-commits
mailing list