Merge branch 'master' into f13
This commit is contained in:
commit
c6a6806f42
51
opensc-0.11.13-build-readerstate.patch
Normal file
51
opensc-0.11.13-build-readerstate.patch
Normal file
@ -0,0 +1,51 @@
|
||||
diff -up opensc-0.11.13/src/libopensc/internal-winscard.h.build opensc-0.11.13/src/libopensc/internal-winscard.h
|
||||
--- opensc-0.11.13/src/libopensc/internal-winscard.h.build 2010-02-16 10:03:28.000000000 +0100
|
||||
+++ opensc-0.11.13/src/libopensc/internal-winscard.h 2010-09-07 10:34:20.000000000 +0200
|
||||
@@ -88,7 +88,7 @@ SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *L
|
||||
|
||||
typedef const SCARD_IO_REQUEST *LPCSCARD_IO_REQUEST;
|
||||
typedef SCARD_READERSTATE_A SCARD_READERSTATE, *PSCARD_READERSTATE_A,
|
||||
- *LPSCARD_READERSTATE_A;
|
||||
+ *LPSCARD_READERSTATE_A, *LPSCARD_READERSTATE;
|
||||
|
||||
#endif /* HAVE_SCARD_H */
|
||||
|
||||
@@ -113,7 +113,7 @@ typedef LONG (PCSC_API *SCardEndTransact
|
||||
typedef LONG (PCSC_API *SCardStatus_t)(SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen,
|
||||
LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen);
|
||||
typedef LONG (PCSC_API *SCardGetStatusChange_t)(SCARDCONTEXT hContext, DWORD dwTimeout,
|
||||
- LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders);
|
||||
+ LPSCARD_READERSTATE rgReaderStates, DWORD cReaders);
|
||||
typedef LONG (PCSC_API *SCardControlOLD_t)(SCARDHANDLE hCard, LPCVOID pbSendBuffer, DWORD cbSendLength,
|
||||
LPVOID pbRecvBuffer, LPDWORD lpBytesReturned);
|
||||
typedef LONG (PCSC_API *SCardControl_t)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer,
|
||||
diff -up opensc-0.11.13/src/libopensc/reader-pcsc.c.build opensc-0.11.13/src/libopensc/reader-pcsc.c
|
||||
--- opensc-0.11.13/src/libopensc/reader-pcsc.c.build 2010-02-16 10:03:28.000000000 +0100
|
||||
+++ opensc-0.11.13/src/libopensc/reader-pcsc.c 2010-09-07 10:34:51.000000000 +0200
|
||||
@@ -80,7 +80,7 @@ struct pcsc_private_data {
|
||||
|
||||
struct pcsc_slot_data {
|
||||
SCARDHANDLE pcsc_card;
|
||||
- SCARD_READERSTATE_A reader_state;
|
||||
+ SCARD_READERSTATE reader_state;
|
||||
DWORD verify_ioctl;
|
||||
DWORD verify_ioctl_start;
|
||||
DWORD verify_ioctl_finish;
|
||||
@@ -353,7 +353,7 @@ static int pcsc_wait_for_event(sc_reader
|
||||
sc_context_t *ctx;
|
||||
SCARDCONTEXT pcsc_ctx;
|
||||
LONG ret;
|
||||
- SCARD_READERSTATE_A rgReaderStates[SC_MAX_READERS];
|
||||
+ SCARD_READERSTATE rgReaderStates[SC_MAX_READERS];
|
||||
unsigned long on_bits, off_bits;
|
||||
time_t end_time, now, delta;
|
||||
size_t i;
|
||||
@@ -401,7 +401,7 @@ static int pcsc_wait_for_event(sc_reader
|
||||
/* Wait for a status change and return if it's a card insert/removal
|
||||
*/
|
||||
for( ; ; ) {
|
||||
- SCARD_READERSTATE_A *rsp;
|
||||
+ SCARD_READERSTATE *rsp;
|
||||
|
||||
/* Scan the current state of all readers to see if they
|
||||
* match any of the events we're polling for */
|
12
opensc-0.11.13-libassuan1.patch
Normal file
12
opensc-0.11.13-libassuan1.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up opensc-0.11.13/aclocal.m4.libassuan1 opensc-0.11.13/aclocal.m4
|
||||
--- opensc-0.11.13/aclocal.m4.libassuan1 2010-02-16 03:32:15.000000000 -0600
|
||||
+++ opensc-0.11.13/aclocal.m4 2010-08-11 13:39:21.483606389 -0500
|
||||
@@ -1108,7 +1108,7 @@ AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([m4/acx_pthread.m4])
|
||||
-m4_include([m4/libassuan.m4])
|
||||
+m4_include([libassuan1.m4])
|
||||
m4_include([m4/libtool.m4])
|
||||
m4_include([m4/ltoptions.m4])
|
||||
m4_include([m4/ltsugar.m4])
|
71
opensc-0.11.13-serial-overflow.patch
Normal file
71
opensc-0.11.13-serial-overflow.patch
Normal file
@ -0,0 +1,71 @@
|
||||
Index: /trunk/src/libopensc/muscle.c
|
||||
===================================================================
|
||||
--- /trunk/src/libopensc/muscle.c (revision 4350)
|
||||
+++ /trunk/src/libopensc/muscle.c (revision 4912)
|
||||
@@ -31,11 +31,4 @@
|
||||
#define MSC_DSA_PUBLIC 0x04
|
||||
#define MSC_DSA_PRIVATE 0x05
|
||||
-
|
||||
-#ifndef MAX
|
||||
-#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
||||
-#endif
|
||||
-#ifndef MIN
|
||||
-#define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
||||
-#endif
|
||||
|
||||
static msc_id inputId = { { 0xFF, 0xFF, 0xFF, 0xFF } };
|
||||
Index: /trunk/src/libopensc/internal.h
|
||||
===================================================================
|
||||
--- /trunk/src/libopensc/internal.h (revision 4902)
|
||||
+++ /trunk/src/libopensc/internal.h (revision 4912)
|
||||
@@ -48,4 +48,11 @@
|
||||
#define msleep(t) Sleep(t)
|
||||
#define sleep(t) Sleep((t) * 1000)
|
||||
+#endif
|
||||
+
|
||||
+#ifndef MAX
|
||||
+#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
||||
+#endif
|
||||
+#ifndef MIN
|
||||
+#define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
||||
#endif
|
||||
|
||||
Index: /trunk/src/libopensc/card-atrust-acos.c
|
||||
===================================================================
|
||||
--- /trunk/src/libopensc/card-atrust-acos.c (revision 4706)
|
||||
+++ /trunk/src/libopensc/card-atrust-acos.c (revision 4913)
|
||||
@@ -843,6 +843,6 @@
|
||||
return SC_ERROR_INTERNAL;
|
||||
/* cache serial number */
|
||||
- memcpy(card->serialnr.value, apdu.resp, apdu.resplen);
|
||||
- card->serialnr.len = apdu.resplen;
|
||||
+ memcpy(card->serialnr.value, apdu.resp, MIN(apdu.resplen, SC_MAX_SERIALNR));
|
||||
+ card->serialnr.len = MIN(apdu.resplen, SC_MAX_SERIALNR);
|
||||
/* copy and return serial number */
|
||||
memcpy(serial, &card->serialnr, sizeof(*serial));
|
||||
Index: /trunk/src/libopensc/card-starcos.c
|
||||
===================================================================
|
||||
--- /trunk/src/libopensc/card-starcos.c (revision 4706)
|
||||
+++ /trunk/src/libopensc/card-starcos.c (revision 4913)
|
||||
@@ -1280,6 +1280,6 @@
|
||||
return SC_ERROR_INTERNAL;
|
||||
/* cache serial number */
|
||||
- memcpy(card->serialnr.value, apdu.resp, apdu.resplen);
|
||||
- card->serialnr.len = apdu.resplen;
|
||||
+ memcpy(card->serialnr.value, apdu.resp, MIN(apdu.resplen, SC_MAX_SERIALNR));
|
||||
+ card->serialnr.len = MIN(apdu.resplen, SC_MAX_SERIALNR);
|
||||
/* copy and return serial number */
|
||||
memcpy(serial, &card->serialnr, sizeof(*serial));
|
||||
Index: /trunk/src/libopensc/card-acos5.c
|
||||
===================================================================
|
||||
--- /trunk/src/libopensc/card-acos5.c (revision 4118)
|
||||
+++ /trunk/src/libopensc/card-acos5.c (revision 4913)
|
||||
@@ -139,6 +139,6 @@
|
||||
* Cache serial number.
|
||||
*/
|
||||
- memcpy(card->serialnr.value, apdu.resp, apdu.resplen);
|
||||
- card->serialnr.len = apdu.resplen;
|
||||
+ memcpy(card->serialnr.value, apdu.resp, MIN(apdu.resplen, SC_MAX_SERIALNR));
|
||||
+ card->serialnr.len = MIN(apdu.resplen, SC_MAX_SERIALNR);
|
||||
|
||||
/*
|
43
opensc.spec
43
opensc.spec
@ -2,7 +2,7 @@
|
||||
|
||||
Name: opensc
|
||||
Version: 0.11.13
|
||||
Release: 1%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Summary: Smart card library and applications
|
||||
|
||||
Group: System Environment/Libraries
|
||||
@ -11,11 +11,16 @@ URL: http://www.opensc-project.org/opensc/
|
||||
Source0: http://www.opensc-project.org/files/opensc/%{name}-%{version}.tar.gz
|
||||
Patch1: %{name}-0.11.7-develconfig.patch
|
||||
Patch2: %{name}-0.11.12-no-add-needed.patch
|
||||
Patch3: opensc-0.11.13-libassuan1.patch
|
||||
Patch4: opensc-0.11.13-build-readerstate.patch
|
||||
Patch5: opensc-0.11.13-serial-overflow.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
BuildRequires: pcsc-lite-devel
|
||||
BuildRequires: readline-devel
|
||||
%if 0%{?fedora} || 0%{?rhel} > 5
|
||||
BuildRequires: openct-devel
|
||||
%endif
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: libtool-ltdl-devel
|
||||
BuildRequires: libtool
|
||||
@ -33,8 +38,12 @@ eID cards have also been confirmed to work.
|
||||
Summary: Digital signature plugin for web browsers
|
||||
Group: Applications/Internet
|
||||
BuildRequires: libXt-devel
|
||||
BuildRequires: libassuan-static, libassuan-devel
|
||||
Requires: %{plugindir}
|
||||
%if 0%{?fedora} > 13
|
||||
BuildRequires: libassuan1-devel libassuan1-static automake
|
||||
%else
|
||||
BuildRequires: libassuan-devel libassuan-static
|
||||
%endif
|
||||
Requires: mozilla-filesystem%{?_isa}
|
||||
Requires: pinentry-gui
|
||||
|
||||
%description -n mozilla-opensc-signer
|
||||
@ -56,18 +65,30 @@ OpenSC development files.
|
||||
%setup -q
|
||||
%patch1 -p1 -b .config
|
||||
%patch2 -p1 -b .no-add-needed
|
||||
%patch5 -p2 -b .overflow
|
||||
|
||||
sed -i -e 's|"/lib /usr/lib\b|"/%{_lib} %{_libdir}|' configure # lib64 rpaths
|
||||
cp -p src/pkcs15init/README ./README.pkcs15init
|
||||
cp -p src/scconf/README.scconf .
|
||||
# No %{_libdir} here to avoid multilib conflicts; it's just an example
|
||||
sed -i -e 's|/usr/local/towitoko/lib/|/usr/lib/ctapi/|' etc/opensc.conf.in
|
||||
|
||||
# hacks for libassuan1
|
||||
%if 0%{?fedora} > 13
|
||||
rm -f m4/libassuan.m4
|
||||
%patch3 -p1 -b .libassuan1
|
||||
%patch4 -p1 -b .build
|
||||
./bootstrap
|
||||
%endif
|
||||
|
||||
|
||||
%build
|
||||
%configure --disable-static \
|
||||
--enable-nsplugin \
|
||||
--enable-pcsc \
|
||||
%if 0%{?fedora} || 0%{?rhel} > 5
|
||||
--enable-openct \
|
||||
%endif
|
||||
--enable-doc \
|
||||
--with-pcsc-provider=libpcsclite.so.1 \
|
||||
--with-plugindir=%{plugindir} \
|
||||
@ -123,6 +144,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/lib*.so.*
|
||||
%{_libdir}/onepin-opensc-pkcs11.so
|
||||
%{_libdir}/opensc-pkcs11.so
|
||||
%dir %{_libdir}/pkcs11
|
||||
%{_libdir}/pkcs11/onepin-opensc-pkcs11.so
|
||||
%{_libdir}/pkcs11/opensc-pkcs11.so
|
||||
%{_datadir}/opensc/
|
||||
@ -156,6 +178,21 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Dec 21 2010 Tomas Mraz <tmraz@redhat.com> - 0.11.13-6
|
||||
- fix buffer overflow on rogue card serial numbers
|
||||
|
||||
* Tue Oct 19 2010 Tomas Mraz <tmraz@redhat.com> - 0.11.13-5
|
||||
- own the _libdir/pkcs11 subdirectory (#644527)
|
||||
|
||||
* Tue Sep 7 2010 Tomas Mraz <tmraz@redhat.com> - 0.11.13-4
|
||||
- fix build with new pcsc-lite
|
||||
|
||||
* Wed Aug 11 2010 Rex Dieter <rdieter@fedoraproject.org> - 0.11.13-3
|
||||
- build against libassuan1 (f14+)
|
||||
|
||||
* Wed Jun 9 2010 Tomas Mraz <tmraz@redhat.com> - 0.11.13-2
|
||||
- replace file dependency (#601943)
|
||||
|
||||
* Tue Feb 16 2010 Kalev Lember <kalev@smartlink.ee> - 0.11.13-1
|
||||
- new upstream version
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user