rpms/mingw32-libxslt/F-11 libexslt-rc4.patch, NONE, 1.1 mingw32-libxslt-1.1.24-win32-shared.patch, NONE, 1.1 mingw32-libxslt.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
Erik van Pienbroek
epienbro at fedoraproject.org
Sun May 24 12:42:37 UTC 2009
- Previous message: rpms/mingw32-libxslt/F-10 libexslt-rc4.patch, NONE, 1.1 mingw32-libxslt-1.1.24-win32-shared.patch, NONE, 1.1 mingw32-libxslt.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message: rpms/mingw32-libxslt/devel libexslt-rc4.patch, NONE, 1.1 mingw32-libxslt-1.1.24-win32-shared.patch, NONE, 1.1 mingw32-libxslt.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: epienbro
Update of /cvs/pkgs/rpms/mingw32-libxslt/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17212/F-11
Modified Files:
.cvsignore sources
Added Files:
libexslt-rc4.patch mingw32-libxslt-1.1.24-win32-shared.patch
mingw32-libxslt.spec
Log Message:
Initial import
libexslt-rc4.patch:
--- NEW FILE libexslt-rc4.patch ---
Index: libexslt/crypto.c
===================================================================
--- libexslt/crypto.c (revision 1485)
+++ libexslt/crypto.c (working copy)
@@ -317,13 +317,13 @@ exsltCryptoCryptoApiRc4Decrypt (xmlXPath
#define PLATFORM_MD5 GCRY_MD_MD5
#define PLATFORM_SHA1 GCRY_MD_SHA1
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h> /* needed by gcrypt.h 4 Jul 04 */
#endif
@@ -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)
mingw32-libxslt-1.1.24-win32-shared.patch:
--- NEW FILE mingw32-libxslt-1.1.24-win32-shared.patch ---
--- libxslt-1.1.24.orig/configure.in 2008-05-13 16:40:31.000000000 +0100
+++ libxslt-1.1.24/configure.in 2008-10-25 23:33:10.000000000 +0100
@@ -3,6 +3,7 @@
AC_INIT(libxslt/xslt.c)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
+AC_LIBTOOL_WIN32_DLL
dnl
dnl libxslt is the main part of the package
--- libxslt-1.1.24.orig/libxslt/Makefile.am 2007-01-03 15:11:57.000000000 +0000
+++ libxslt-1.1.24/libxslt/Makefile.am 2008-10-25 23:33:36.000000000 +0100
@@ -51,7 +51,7 @@
libxslt.h
libxslt_la_LIBADD = $(EXTRA_LIBS)
-libxslt_la_LDFLAGS = -version-info @LIBXSLT_VERSION_INFO@
+libxslt_la_LDFLAGS = -version-info @LIBXSLT_VERSION_INFO@ -no-undefined
man_MANS = libxslt.3
--- NEW FILE mingw32-libxslt.spec ---
%global __strip %{_mingw32_strip}
%global __objdump %{_mingw32_objdump}
%global _use_internal_dependency_generator 0
%global __find_requires %{_mingw32_findrequires}
%global __find_provides %{_mingw32_findprovides}
Name: mingw32-libxslt
Version: 1.1.24
Release: 7%{?dist}
Summary: MinGW Windows Library providing the Gnome XSLT engine
License: MIT
Group: Development/Libraries
URL: http://xmlsoft.org/XSLT/
Source0: ftp://xmlsoft.org/XSLT/libxslt-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
# Fix for CVE-2008-2935
Patch1: libexslt-rc4.patch
# Fix compilation on MinGW environments
Patch1000: mingw32-libxslt-1.1.24-win32-shared.patch
BuildRequires: mingw32-filesystem >= 30
BuildRequires: mingw32-gcc
BuildRequires: mingw32-binutils
BuildRequires: mingw32-dlfcn
BuildRequires: mingw32-iconv
BuildRequires: mingw32-libgcrypt
BuildRequires: mingw32-libxml2 >= 2.7.2-3
BuildRequires: pkgconfig
BuildRequires: autoconf, automake, libtool
Requires: mingw32-libxml2 >= 2.7.2-3
Requires: pkgconfig
%description
This C library allows to transform XML files into other XML files
(or HTML, text, ...) using the standard XSLT stylesheet transformation
mechanism. To use it you need to have a version of libxml2 >= 2.6.27
installed. The xsltproc command is a command line interface to the XSLT engine
%package static
Summary: Static version of the MinGW Windows LibXSLT library
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
%description static
Static version of the MinGW Windows LibXSLT library.
%prep
%setup -q -n libxslt-%{version}
# The native version of libxslt contains a multilib patch, but
# this isn't interesting for MinGW environments
#%patch0 -p1
%patch1 -p0
%patch1000 -p1
libtoolize --force --copy
autoreconf
%build
PATH=%{_mingw32_bindir}:$PATH \
%{_mingw32_configure} --without-python --enable-shared
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
# Remove doc and man which duplicate stuff already in Fedora native package.
rm -r $RPM_BUILD_ROOT%{_mingw32_docdir}
rm -r $RPM_BUILD_ROOT%{_mingw32_mandir}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc COPYING Copyright
%{_mingw32_bindir}/xslt-config
%{_mingw32_bindir}/xsltproc.exe
%{_mingw32_includedir}/libexslt
%{_mingw32_includedir}/libxslt
#%{_mingw32_bindir}/libexslt.dll
#%{_mingw32_libdir}/libexslt.dll.a
%{_mingw32_libdir}/libexslt.la
%{_mingw32_bindir}/libxslt-1.dll
%{_mingw32_libdir}/libxslt.dll.a
%{_mingw32_libdir}/libxslt.la
%{_mingw32_libdir}/pkgconfig/libexslt.pc
%{_mingw32_libdir}/pkgconfig/libxslt.pc
%{_mingw32_libdir}/xsltConf.sh
%{_mingw32_datadir}/aclocal/libxslt.m4
%files static
%defattr(-,root,root,-)
%{_mingw32_libdir}/libexslt.a
%{_mingw32_libdir}/libxslt.a
%changelog
* Fri May 22 2009 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.1.24-7
- Use %%global instead of %%define
- Dropped the reference to the multilib patch as it isn't used for MinGW
- Fixed dangling-relative-symlink rpmlint warning
* Sat May 9 2009 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.1.24-6
- Added some more comments in the .spec file
- Added -static subpackage
- Dropped the 'gzip ChangeLog' line as the ChangeLog isn't bundled anyway
- Fixed %%defattr line
* Fri Feb 20 2009 Richard W.M. Jones <rjones at redhat.com> - 1.1.24-5
- Rebuild for mingw32-gcc 4.4
* Fri Feb 6 2009 Richard W.M. Jones <rjones at redhat.com> - 1.1.24-4
- Include license file.
* Fri Jan 23 2009 Richard W.M. Jones <rjones at redhat.com> - 1.1.24-3
- Use _smp_mflags.
- Rebuild libtool.
- +BRs dlfcn and iconv.
* Sat Oct 25 2008 Richard W.M. Jones <rjones at redhat.com> - 1.1.24-2
- Initial RPM release.
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-libxslt/F-11/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- .cvsignore 23 May 2009 05:40:11 -0000 1.1
+++ .cvsignore 24 May 2009 12:42:06 -0000 1.2
@@ -0,0 +1 @@
+libxslt-1.1.24.tar.gz
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-libxslt/F-11/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- sources 23 May 2009 05:40:11 -0000 1.1
+++ sources 24 May 2009 12:42:07 -0000 1.2
@@ -0,0 +1 @@
+e83ec5d27fc4c10c6f612879bea9a153 libxslt-1.1.24.tar.gz
- Previous message: rpms/mingw32-libxslt/F-10 libexslt-rc4.patch, NONE, 1.1 mingw32-libxslt-1.1.24-win32-shared.patch, NONE, 1.1 mingw32-libxslt.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message: rpms/mingw32-libxslt/devel libexslt-rc4.patch, NONE, 1.1 mingw32-libxslt-1.1.24-win32-shared.patch, NONE, 1.1 mingw32-libxslt.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list