[PATCH] USB: Buffer overflow patch for Yealink driver
authorHenk <Henk.Vergonet@gmail.com>
Wed, 12 Oct 2005 13:02:56 +0000 (15:02 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 28 Oct 2005 23:47:44 +0000 (16:47 -0700)
Just a small patch that fixes a small parameter validation bug.

  drivers/usb/input/map_to_7segment.h:
    This patch fixes the broken parameter validation in the char to seg7
    conversion. This could cause out-of-bounds memory references.

  MAINTAINERS:
    Yealink maintainer info now in sorted order.

  Documentation/input/yealink.txt:
    Added a Q&A section that answers some common questions.

Signed-off-by: Henk <Henk.Vergonet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
006491df1a13f85ad245d1039dfdf20e49c394fd

Documentation/input/yealink.txt
MAINTAINERS
drivers/usb/input/map_to_7segment.h

index 85f095a7ad0457bda33297ef62e587fd96f21582..0962c5c948beed9282550009e6c04f1bcdf6ebd1 100644 (file)
@@ -2,7 +2,6 @@ Driver documentation for yealink usb-p1k phones
 
 0. Status
 ~~~~~~~~~
-
 The p1k is a relatively cheap usb 1.1 phone with:
   - keyboard           full support, yealink.ko / input event API
   - LCD                        full support, yealink.ko / sysfs API
@@ -17,9 +16,8 @@ For vendor documentation see http://www.yealink.com
 
 1. Compilation (stand alone version)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
 Currently only kernel 2.6.x.y versions are supported.
-In order to build the yealink.ko module do:
+In order to build the yealink.ko module do
 
   make
 
@@ -28,6 +26,21 @@ the Makefile is pointing to the location where your kernel sources
 are located, default /usr/src/linux.
 
 
+1.1 Troubleshooting
+~~~~~~~~~~~~~~~~~~~
+Q: Module yealink compiled and installed without any problem but phone
+   is not initialized and does not react to any actions.
+A: If you see something like:
+   hiddev0: USB HID v1.00 Device [Yealink Network Technology Ltd. VOIP USB Phone
+   in dmesg, it means that the hid driver has grabbed the device first. Try to
+   load module yealink before any other usb hid driver. Please see the
+   instructions provided by your distribution on module configuration.
+
+Q: Phone is working now (displays version and accepts keypad input) but I can't
+   find the sysfs files.
+A: The sysfs files are located on the particular usb endpoint. On most
+   distributions you can do: "find /sys/ -name get_icons" for a hint.
+
 
 2. keyboard features
 ~~~~~~~~~~~~~~~~~~~~
index 3928dc7d6ea9e025c09055b67612b8923055ab1b..2868b28797557ef0eb2e732afe83b2251b23c53b 100644 (file)
@@ -116,12 +116,6 @@ M: ajk@iehk.rwth-aachen.de
 L:     linux-hams@vger.kernel.org
 S:     Maintained
 
-YEALINK PHONE DRIVER
-P:     Henk Vergonet
-M:     Henk.Vergonet@gmail.com
-L:     usbb2k-api-dev@nongnu.org
-S:     Maintained
-
 8139CP 10/100 FAST ETHERNET DRIVER
 P:     Jeff Garzik
 M:     jgarzik@pobox.com
@@ -2863,6 +2857,12 @@ M:       jpr@f6fbb.org
 L:     linux-hams@vger.kernel.org
 S:     Maintained
 
+YEALINK PHONE DRIVER
+P:     Henk Vergonet
+M:     Henk.Vergonet@gmail.com
+L:     usbb2k-api-dev@nongnu.org
+S:     Maintained
+
 YMFPCI YAMAHA PCI SOUND (Use ALSA instead)
 P:     Pete Zaitcev
 M:     zaitcev@yahoo.com
index 52ff27f15127817bb4491638193c3ea406c03937..a424094d9fe21b836b5b13216147ac09fb690811 100644 (file)
@@ -79,7 +79,7 @@ struct seg7_conversion_map {
 
 static inline int map_to_seg7(struct seg7_conversion_map *map, int c)
 {
-       return c & 0x7f ? map->table[c] : -EINVAL;
+       return c >= 0 && c < sizeof(map->table) ? map->table[c] : -EINVAL;
 }
 
 #define SEG7_CONVERSION_MAP(_name, _map)       \