From ad701cc3de1a83b8d562cc76e109f29c8b530699 Mon Sep 17 00:00:00 2001 From: Henning Geinitz Date: Sun, 17 Mar 2002 20:20:46 +0000 Subject: [PATCH] Fixed segfault when opening device again after closing and possible segfault when name="". Type for option 0 must be set to SANE_TYPE_INT explicitely. Updated GPL/SANE headers. Henning Meier-Geinitz --- backend/mustek_usb.c | 26 ++++++++++++++++++++------ backend/mustek_usb.desc | 2 +- backend/mustek_usb.h | 7 +++++-- backend/mustek_usb_high.c | 6 +++--- backend/mustek_usb_high.h | 8 ++++---- backend/mustek_usb_low.c | 6 +++--- backend/mustek_usb_low.h | 6 +++--- backend/mustek_usb_mid.c | 7 ++++--- doc/mustek_usb/mustek_usb.CHANGES | 8 ++++++++ 9 files changed, 51 insertions(+), 25 deletions(-) diff --git a/backend/mustek_usb.c b/backend/mustek_usb.c index aedc04074..db18230a8 100644 --- a/backend/mustek_usb.c +++ b/backend/mustek_usb.c @@ -1,9 +1,9 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang - Updates (C) 2001 by Henning Meier-Geinitz. + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. This file is part of the SANE package. @@ -44,9 +44,9 @@ If you do not wish that, delete this exception notice. This file implements a SANE backend for Mustek 1200UB and similar - flatbed scanners. */ + USB flatbed scanners. */ -#define BUILD 10 +#define BUILD 11 #include "../include/sane/config.h" @@ -254,6 +254,7 @@ init_options (Mustek_Usb_Scanner * s) s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS; s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS; + s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT; s->opt[OPT_NUM_OPTS].cap = SANE_CAP_SOFT_DETECT; s->val[OPT_NUM_OPTS].w = NUM_OPTIONS; @@ -917,6 +918,17 @@ sane_exit (void) for (dev = first_dev; dev; dev = next) { next = dev->next; + if (dev->is_prepared) + { + status = usb_high_scan_clearup (dev); + if (status != SANE_STATUS_GOOD) + DBG (3, "sane_close: usb_high_scan_clearup returned %s\n", + sane_strstatus (status)); + } + status = usb_high_scan_exit (dev); + if (status != SANE_STATUS_GOOD) + DBG (3, "sane_close: usb_high_scan_exit returned %s\n", + sane_strstatus (status)); if (dev->chip) { status = usb_high_scan_exit (dev); @@ -988,7 +1000,8 @@ sane_open (SANE_String_Const devicename, SANE_Handle * handle) { /* empty devicname -> use first device */ dev = first_dev; - DBG (5, "sane_open: empty devicename, trying `%s'\n", dev->name); + if (dev) + DBG (5, "sane_open: empty devicename, trying `%s'\n", dev->name); } if (!dev) @@ -1091,6 +1104,7 @@ sane_close (SANE_Handle handle) DBG (3, "sane_close: usb_high_scan_turn_power returned %s\n", sane_strstatus (status)); } +#if 0 if (s->hw->is_prepared) { status = usb_high_scan_clearup (s->hw); @@ -1102,7 +1116,7 @@ sane_close (SANE_Handle handle) if (status != SANE_STATUS_GOOD) DBG (3, "sane_close: usb_high_scan_exit returned %s\n", sane_strstatus (status)); - +#endif if (s->hw->scan_buffer) { free (s->hw->scan_buffer); diff --git a/backend/mustek_usb.desc b/backend/mustek_usb.desc index 7a64e1d37..6915b4e13 100644 --- a/backend/mustek_usb.desc +++ b/backend/mustek_usb.desc @@ -1,6 +1,6 @@ :backend "mustek_usb" :status :beta -:version "1.0-10" +:version "1.0-11" :manpage "sane-mustek_usb" :url "http://www.meier-geinitz.de/sane/" diff --git a/backend/mustek_usb.h b/backend/mustek_usb.h index e53ae7d93..9babd2a71 100644 --- a/backend/mustek_usb.h +++ b/backend/mustek_usb.h @@ -1,7 +1,10 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang + + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. + This file is part of the SANE package. This program is free software; you can redistribute it and/or @@ -41,7 +44,7 @@ If you do not wish that, delete this exception notice. This file implements a SANE backend for Mustek 1200UB and similar - flatbed scanners. */ + USB flatbed scanners. */ #ifndef mustek_usb_h #define mustek_usb_h diff --git a/backend/mustek_usb_high.c b/backend/mustek_usb_high.c index f4d8b8c29..bd0f75920 100644 --- a/backend/mustek_usb_high.c +++ b/backend/mustek_usb_high.c @@ -1,9 +1,9 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang - Updates (C) 2001 by Henning Meier-Geinitz. + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. This file is part of the SANE package. @@ -44,7 +44,7 @@ If you do not wish that, delete this exception notice. This file implements a SANE backend for Mustek 1200UB and similar - flatbed scanners. */ + USB flatbed scanners. */ #include "mustek_usb_high.h" #include "mustek_usb_mid.c" diff --git a/backend/mustek_usb_high.h b/backend/mustek_usb_high.h index ffb4d3f9b..0eb5759e5 100644 --- a/backend/mustek_usb_high.h +++ b/backend/mustek_usb_high.h @@ -1,9 +1,9 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang - Updates (C) 2001 by Henning Meier-Geinitz. + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. This file is part of the SANE package. @@ -44,8 +44,8 @@ If you do not wish that, delete this exception notice. This file implements a SANE backend for Mustek 1200UB and similar - flatbed scanners. */ - + USB flatbed scanners. */ + #ifndef mustek_usb_high_h #define mustek_usb_high_h #include "mustek_usb_mid.h" diff --git a/backend/mustek_usb_low.c b/backend/mustek_usb_low.c index 45db0ed2a..dc10e63f4 100644 --- a/backend/mustek_usb_low.c +++ b/backend/mustek_usb_low.c @@ -1,9 +1,9 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang - Updates (C) 2001 by Henning Meier-Geinitz. + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. This file is part of the SANE package. @@ -44,7 +44,7 @@ If you do not wish that, delete this exception notice. This file implements a SANE backend for Mustek 1200UB and similar - flatbed scanners. */ + USB flatbed scanners. */ #include diff --git a/backend/mustek_usb_low.h b/backend/mustek_usb_low.h index ff6ff31d1..d1a1bd344 100644 --- a/backend/mustek_usb_low.h +++ b/backend/mustek_usb_low.h @@ -1,9 +1,9 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang - Updates (C) 2001 by Henning Meier-Geinitz. + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. This file is part of the SANE package. @@ -44,7 +44,7 @@ If you do not wish that, delete this exception notice. This file implements a SANE backend for Mustek 1200UB and similar - flatbed scanners. */ + USB flatbed scanners. */ #ifndef mustek_usb_low_h #define mustek_usb_low_h diff --git a/backend/mustek_usb_mid.c b/backend/mustek_usb_mid.c index 19f0c9e0b..abe36f2af 100644 --- a/backend/mustek_usb_mid.c +++ b/backend/mustek_usb_mid.c @@ -1,9 +1,9 @@ /* sane - Scanner Access Now Easy. Copyright (C) 2000 Mustek. - Maintained by Tom Wang + Originally maintained by Tom Wang - Updates (C) 2001 by Henning Meier-Geinitz. + Copyright (C) 2001, 2002 by Henning Meier-Geinitz. This file is part of the SANE package. @@ -43,7 +43,8 @@ whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice. - This file implements a SANE backend for Mustek 1200UB flatbed scanners. */ + This file implements a SANE backend for Mustek 1200UB and similar + USB flatbed scanners. */ #include "mustek_usb_mid.h" #include "mustek_usb_low.c" diff --git a/doc/mustek_usb/mustek_usb.CHANGES b/doc/mustek_usb/mustek_usb.CHANGES index 558c797ef..da3f87552 100644 --- a/doc/mustek_usb/mustek_usb.CHANGES +++ b/doc/mustek_usb/mustek_usb.CHANGES @@ -1,5 +1,13 @@ CHANGES for the SANE Mustek USB backend +2002-03-17: + * Release of version 1.0-11. + +2002-03-16: + * mustek_usb.c: Fixed segfault when opening device again after closing. + * mustek_usb.c: Fixed possible segfault when name="". + * mustek_usb.c: Type for option 0 must be set to SANE_TYPE_INT explicitely. + 2002-02-14: * Fixed some problems with wrong formats in DBG statements.