[arch-commits] Commit in sane/trunk (PKGBUILD segfault-avahi-fix-kodakio.patch)

Tobias Powalowski tpowa at nymeria.archlinux.org
Mon Oct 28 17:39:27 UTC 2013


    Date: Monday, October 28, 2013 @ 18:39:27
  Author: tpowa
Revision: 197702

upgpkg: sane 1.0.24-3

fix segfault with avahi

Added:
  sane/trunk/segfault-avahi-fix-kodakio.patch
Modified:
  sane/trunk/PKGBUILD

----------------------------------+
 PKGBUILD                         |   12 +++-
 segfault-avahi-fix-kodakio.patch |   98 +++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-10-28 17:39:23 UTC (rev 197701)
+++ PKGBUILD	2013-10-28 17:39:27 UTC (rev 197702)
@@ -6,7 +6,7 @@
 
 pkgname=sane
 pkgver=1.0.24
-pkgrel=2
+pkgrel=3
 pkgdesc="Scanner Access Now Easy"
 url="http://www.sane-project.org/"
 arch=('i686' 'x86_64')
@@ -18,7 +18,8 @@
         'sane.xinetd'
         'saned.socket'
         'saned.service'
-        'network.patch')
+        'network.patch'
+        'segfault-avahi-fix-kodakio.patch')
 options=(!libtool)
 
 prepare() {
@@ -25,6 +26,10 @@
   cd "${srcdir}/${pkgname}-backends-${pkgver}"
    # fix http://vasks.debian.org/tracker/?func=detail&atid=410366&aid=313760&group_id=30186
    patch -Np1 -i ${srcdir}/network.patch
+   # fix http://anonscm.debian.org/gitweb/?p=sane/sane-backends.git;a=commit;h=37523b867d411c2f82d08128246be7e38bc9812c
+   # #37525
+   # https://alioth.debian.org/tracker/?group_id=30186&atid=410366&func=detail&aid=314301
+   patch -Np1 -i ${srcdir}/segfault-avahi-fix-kodakio.patch
 }
 
 build() {
@@ -69,4 +74,5 @@
          'bc2c8b4f7b3012c8936c7da21f60e2ac'
          'e57e9e15528f47f5f1b3f1411135ed5d'
          '3f9fe36b0c4ff0b01b53b1cffa5d9700'
-         '44e77692c52db15b0f530a1d9a8e1296')
+         '44e77692c52db15b0f530a1d9a8e1296'
+         '039524a38af8721f2e97d45e889295ca')

Added: segfault-avahi-fix-kodakio.patch
===================================================================
--- segfault-avahi-fix-kodakio.patch	                        (rev 0)
+++ segfault-avahi-fix-kodakio.patch	2013-10-28 17:39:27 UTC (rev 197702)
@@ -0,0 +1,98 @@
+From 37523b867d411c2f82d08128246be7e38bc9812c Mon Sep 17 00:00:00 2001
+From: Paul Newall <quandry at ntlworld.com>
+Date: Mon, 14 Oct 2013 22:22:53 +0100
+Subject: [PATCH] Bugfix in kodakaio.c to fix segfault when non kodak scanners
+ return unexpected data via avahi auto discovery
+
+---
+ backend/kodakaio.c             |   43 ++++++++++++++++++++++++++++++----------
+ doc/descriptions/kodakaio.desc |    2 +-
+ 3 files changed, 37 insertions(+), 12 deletions(-)
+
+diff --git a/backend/kodakaio.c b/backend/kodakaio.c
+index 8c4583a..b442e50 100644
+--- a/backend/kodakaio.c
++++ b/backend/kodakaio.c
+@@ -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);
+ }
+ 
+diff --git a/doc/descriptions/kodakaio.desc b/doc/descriptions/kodakaio.desc
+index 7882513..5fb18ed 100644
+--- a/doc/descriptions/kodakaio.desc
++++ b/doc/descriptions/kodakaio.desc
+@@ -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
+-- 
+1.7.10.4
+




More information about the arch-commits mailing list