kopia lustrzana https://gitlab.com/sane-project/backends
Bugfix in kodakaio.c to fix segfault when non kodak scanners return unexpected data via avahi auto discovery
rodzic
236785e095
commit
37523b867d
|
@ -1,3 +1,7 @@
|
|||
2013-10-14 Paul Newall <quandry@ntlworld.com>
|
||||
* backend/kodakaio.c: fix bug #314301,
|
||||
Segfault when unexpected data returned by avahi auto discovery.
|
||||
|
||||
2013-10-11 Rolf Bensch <rolf at bensch hyphen online dot de>
|
||||
* backend/pixma_imageclass.c: Use generation variable instead of single
|
||||
defines of scanner pid's. Now new scanners should work without extensive
|
||||
|
|
|
@ -127,7 +127,7 @@ for ubuntu 12.10
|
|||
|
||||
#define KODAKAIO_VERSION 02
|
||||
#define KODAKAIO_REVISION 4
|
||||
#define KODAKAIO_BUILD 6
|
||||
#define KODAKAIO_BUILD 7
|
||||
|
||||
/* for usb (but also used for net though it's not required). */
|
||||
#define MAX_BLOCK_SIZE 32768
|
||||
|
@ -2184,6 +2184,7 @@ static void resolve_callback(
|
|||
AvahiLookupResultFlags flags,
|
||||
AVAHI_GCC_UNUSED void* userdata) {
|
||||
|
||||
AvahiStringList *vid_pair_list = NULL, *pid_pair_list = NULL;
|
||||
char *pidkey, *pidvalue;
|
||||
char *vidkey, *vidvalue;
|
||||
size_t valuesize;
|
||||
|
@ -2204,20 +2205,40 @@ static void resolve_callback(
|
|||
avahi_address_snprint(a, sizeof(a), address);
|
||||
|
||||
/* Output short for Kodak ESP */
|
||||
DBG(min(10,DBG_AUTO), "%s:%u %s ", a,port,host_name);
|
||||
avahi_string_list_get_pair(avahi_string_list_find(txt, "vid"),
|
||||
&vidkey, &vidvalue, &valuesize);
|
||||
DBG(min(10,DBG_AUTO), "%s=%s ", vidkey, vidvalue);
|
||||
avahi_string_list_get_pair(avahi_string_list_find(txt, "pid"),
|
||||
&pidkey, &pidvalue, &valuesize);
|
||||
DBG(min(10,DBG_AUTO), "%s=%s\n", pidkey, pidvalue);
|
||||
DBG(min(10,DBG_AUTO), "%s:%u %s\n", a,port,host_name);
|
||||
|
||||
vid_pair_list = avahi_string_list_find(txt, "vid");
|
||||
if(vid_pair_list != NULL) {
|
||||
avahi_string_list_get_pair(vid_pair_list, &vidkey, &vidvalue, &valuesize);
|
||||
DBG(min(10,DBG_AUTO), "%s=%s ", vidkey, vidvalue);
|
||||
}
|
||||
else DBG(min(10,DBG_AUTO), "failed to find key vid\n");
|
||||
|
||||
pid_pair_list = avahi_string_list_find(txt, "pid");
|
||||
if(pid_pair_list != NULL) {
|
||||
avahi_string_list_get_pair(pid_pair_list, &pidkey, &pidvalue, &valuesize);
|
||||
DBG(min(10,DBG_AUTO), "%s=%s\n", pidkey, pidvalue);
|
||||
}
|
||||
else DBG(min(10,DBG_AUTO), "failed to find key pid\n");
|
||||
|
||||
if(pid_pair_list != NULL && vid_pair_list != NULL) {
|
||||
ProcessAvahiDevice(name, vidvalue, pidvalue, a);
|
||||
avahi_free(vidkey); avahi_free(vidvalue);
|
||||
avahi_free(pidkey); avahi_free(pidvalue);
|
||||
}
|
||||
else DBG(min(10,DBG_AUTO), "didn't call ProcessAvahiDevice\n");
|
||||
|
||||
if(vid_pair_list != NULL) {
|
||||
avahi_free(vidkey);
|
||||
avahi_free(vidvalue);
|
||||
DBG(min(15,DBG_AUTO), "vidkey and vidvalue freed\n");
|
||||
}
|
||||
if(pid_pair_list != NULL) {
|
||||
avahi_free(pidkey);
|
||||
avahi_free(pidvalue);
|
||||
DBG(min(15,DBG_AUTO), "pidkey and pidvalue freed\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DBG(min(10,DBG_AUTO), "ending resolve_callback\n");
|
||||
avahi_service_resolver_free(r);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
:backend "kodakaio"
|
||||
:url "http://sourceforge.net/projects/cupsdriverkodak/"
|
||||
:version "2.4.6"
|
||||
:version "2.4.7"
|
||||
:manpage "sane-kodakaio"
|
||||
:comment "Backend for Kodak AiO ESP and Hero printers. Also possibly Advent AWL10"
|
||||
:devicetype :scanner
|
||||
|
|
Ładowanie…
Reference in New Issue