[PATCH] yealink driver: fix input patameter validations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yust a small patch that fixes a small parameter validation bug.
Please apply.

Best regards,

Henk
[PATCH] Buffer overflow patch for Yealink driver

  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 <[email protected]>

---

 Documentation/input/yealink.txt     |   25 +++++++++++++++++++------
 MAINTAINERS                         |   12 ++++++------
 drivers/usb/input/map_to_7segment.h |    2 +-
 3 files changed, 26 insertions(+), 13 deletions(-)

006491df1a13f85ad245d1039dfdf20e49c394fd
diff --git a/Documentation/input/yealink.txt b/Documentation/input/yealink.txt
--- a/Documentation/input/yealink.txt
+++ b/Documentation/input/yealink.txt
@@ -2,7 +2,6 @@ Driver documentation for yealink usb-p1k
 
 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,17 +16,31 @@ For vendor documentation see http://www.
 
 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
 
-If you encounter problems please check if in the MAKE_OPTS variable in
+If you encounter problems please check if in the MAKE_OPTS variable in 
 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
 ~~~~~~~~~~~~~~~~~~~~
@@ -134,7 +147,7 @@ Writing to /sys/../lineX will set the co
   Will update the LCD with the current date & time.
 
 
-4.2 get_icons
+4.2 get_icons 
 ~~~~~~~~~~~~~
 Reading will return all available icon names and its current settings:
 
@@ -159,7 +172,7 @@ Reading will return all available icon n
      RINGTONE
 
 
-4.3 show/hide icons
+4.3 show/hide icons 
 ~~~~~~~~~~~~~~~~~~~
 Writing to these files will update the state of the icon.
 Only one icon at a time can be updated.
diff --git a/MAINTAINERS b/MAINTAINERS
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -116,12 +116,6 @@ M:	[email protected]
 L:	[email protected]
 S:	Maintained
 
-YEALINK PHONE DRIVER
-P:	Henk Vergonet
-M:	[email protected]
-L:	[email protected]
-S:	Maintained
-
 8139CP 10/100 FAST ETHERNET DRIVER
 P:	Jeff Garzik
 M:	[email protected]
@@ -2841,6 +2835,12 @@ M:	[email protected]
 L:	[email protected]
 S:	Maintained
 
+YEALINK PHONE DRIVER
+P:	Henk Vergonet
+M:	[email protected]
+L:	[email protected]
+S:	Maintained
+
 YMFPCI YAMAHA PCI SOUND (Use ALSA instead)
 P:	Pete Zaitcev
 M:	[email protected]
diff --git a/drivers/usb/input/map_to_7segment.h b/drivers/usb/input/map_to_7segment.h
--- a/drivers/usb/input/map_to_7segment.h
+++ b/drivers/usb/input/map_to_7segment.h
@@ -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)	\

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux