Verbesserte Fehlerbehandlung für DeviceScanner-Initialisierung [PATCH]
Micha Lenk <[email protected]> Thu, 16 Apr 2009 14:57:05 +0200
| Newsgroups | gmane.comp.lib.libchipcard.devel |
|---|---|
| Message-ID | <[email protected]> |
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--===============2213791610739475880==
Content-Type: multipart/signed; micalg=pgp-sha1;
protocol="application/pgp-signature";
boundary="------------enig31D0FF9F5A4B2B4FE846E79C"
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig31D0FF9F5A4B2B4FE846E79C
Content-Type: multipart/mixed; boundary="------------000709020507040107060507"
This is a multi-part message in MIME format.
--------------000709020507040107060507
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable
Hallo Martin,
wenn der HAL-Daemon nicht l=E4uft, kommt es beim Starten und Beenden des
chipcardd4 Daemons zu komischen Fehlermeldungen (vgl. Debian Bug
http://bugs.debian.org/524320), die daher r=FChren, dass der Fall, dass
die *Scanner_new()-Funktionen auch NULL zur=FCck liefern k=F6nnen, nicht
abgefangen wird. Der angeh=E4ngte Patch (applizierbar auf SVN-Trunk mit
"patch -p1 < datei") behebt das Problem (und ist im Debian-Paket
libchipcard 4.2.7-2 enthalten).
Sch=F6ne Gr=FC=DFe
Micha
--------------000709020507040107060507
Content-Type: text/plain; name="40_scanner_init_improved_error_handling.dpatch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline;
filename="40_scanner_init_improved_error_handling.dpatch"
#! /bin/sh /usr/share/dpatch/dpatch-run
## 40_scanner_init_improved_error_handling.dpatch by Micha Lenk <micha@le=
nk.info>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix error handling for device scanners failing to initialize
## DP: Fix for Debian Bug #524320
@DPATCH@
--- a/src/lib/server/server/devicemanager/devicemanager.c (Revision 520)
+++ b/src/lib/server/server/devicemanager/devicemanager.c (Arbeitskopie)
@@ -248,32 +248,42 @@
#ifdef USE_HAL
DBG_INFO(0, "Adding HAL scanner");
scanner=3DLC_HalScanner_new();
- LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
- scanners++;
+ if (scanner) {
+ LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
+ scanners++;
+ }
#else
if (dm->disablePciScan=3D=3D0) {
DBG_INFO(0, "Adding PCI bus scanner");
scanner=3DLC_PciScanner_new();
- LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
- scanners++;
+ if (scanner) {
+ LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
+ scanners++;
+ }
}
if (dm->disablePcmciaScan=3D=3D0) {
DBG_INFO(0, "Adding PCMCIA bus scanner");
scanner=3DLC_PcmciaScanner_new();
- LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
- scanners++;
+ if (scanner) {
+ LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
+ scanners++;
+ }
}
if (dm->disableUsbRawScan=3D=3D0) {
DBG_INFO(0, "Adding USB bus scanner");
scanner=3DLC_UsbRawScanner_new();
- LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
- scanners++;
+ if (scanner) {
+ LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
+ scanners++;
+ }
}
if (dm->disableUsbTtyScan=3D=3D0) {
DBG_INFO(0, "Adding USB TTY bus scanner");
scanner=3DLC_UsbTtyScanner_new();
- LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
- scanners++;
+ if (scanner) {
+ LC_DevMonitor_AddScanner(dm->deviceMonitor, scanner);
+ scanners++;
+ }
}
#endif
dm->lastHardwareScan=3D0;
--- a/src/lib/server/common/halscanner.c (Revision 520)
+++ b/src/lib/server/common/halscanner.c (Arbeitskopie)
@@ -83,7 +83,10 @@
DBG_INFO(0, "Closing HAL scanner");
=20
dbus_error_free(&(xsc->dbus_error));
- dbus_connection_unref(xsc->dbus_conn);
+ if (xsc->dbus_conn) {
+ dbus_connection_unref(xsc->dbus_conn);
+ xsc->dbus_conn =3D NULL;
+ }
/*libhal_ctx_shutdown(ctx, NULL);*/
libhal_ctx_free(xsc->ctx);
=20
--------------000709020507040107060507--
--------------enig31D0FF9F5A4B2B4FE846E79C
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAknnKycACgkQWN0/4pnhQbSaXgCgzqX7hjH8NS6pAoDiNavieSqi
8aIAn3hsFFL5pXbNG4rPjuNMvETvOSB8
=DBrM
-----END PGP SIGNATURE-----
--------------enig31D0FF9F5A4B2B4FE846E79C--
--===============2213791610739475880==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today.
Use priority code J9JMT32. http://p.sf.net/sfu/p
--===============2213791610739475880==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Libchipcard-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libchipcard-devel
--===============2213791610739475880==--