aboutsummaryrefslogtreecommitdiffstats
path: root/usb-serial-visor-handle-potential-invalid-device-configuration.patch
diff options
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-11 16:21:51 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-11 16:21:51 +0200
commit824f28c9ec990b8b0c7e92ec3fd2c268ec9a17a5 (patch)
tree18e9afab2d9cb5bae86e0e1c8edb32a149bdac02 /usb-serial-visor-handle-potential-invalid-device-configuration.patch
parentffad0c8695eb61e151a1095cb140b7c804f7b889 (diff)
downloadpatches-824f28c9ec990b8b0c7e92ec3fd2c268ec9a17a5.tar.gz
refresh with 4.18-rc4
Diffstat (limited to 'usb-serial-visor-handle-potential-invalid-device-configuration.patch')
-rw-r--r--usb-serial-visor-handle-potential-invalid-device-configuration.patch115
1 files changed, 0 insertions, 115 deletions
diff --git a/usb-serial-visor-handle-potential-invalid-device-configuration.patch b/usb-serial-visor-handle-potential-invalid-device-configuration.patch
deleted file mode 100644
index c73ab62cb07578..00000000000000
--- a/usb-serial-visor-handle-potential-invalid-device-configuration.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From foo@baz Sun Apr 29 17:37:43 CEST 2018
-Date: Sun, 29 Apr 2018 17:37:43 +0200
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] USB: serial: visor: handle potential invalid device configuration
-
-If we get an invalid device configuration from a palm 3 type device, we
-might incorrectly parse things, and we have the potential to crash in
-"interesting" ways.
-
-Fix this up by verifying the size of the configuration passed to us by
-the device, and only if it is correct, will we handle it.
-
-Reported-by: Andrey Konovalov <andreyknvl@google.com>
-Reviewed-by: Andrey Konovalov <andreyknvl@google.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
-
-Here is my long-forgotten patch for the visor driver to resolve an issue
-that Andrey found back in September of 2017. Sorry for the long delay.
-
-Johan, I incorporated your review comments of my original one-off patch
-here as well.
-
-
----
- drivers/usb/serial/visor.c | 69 ++++++++++++++++++++++-----------------------
- 1 file changed, 35 insertions(+), 34 deletions(-)
-
---- a/drivers/usb/serial/visor.c
-+++ b/drivers/usb/serial/visor.c
-@@ -335,47 +335,48 @@ static int palm_os_3_probe(struct usb_se
- goto exit;
- }
-
-- if (retval == sizeof(*connection_info)) {
-- connection_info = (struct visor_connection_info *)
-- transfer_buffer;
--
-- num_ports = le16_to_cpu(connection_info->num_ports);
-- for (i = 0; i < num_ports; ++i) {
-- switch (
-- connection_info->connections[i].port_function_id) {
-- case VISOR_FUNCTION_GENERIC:
-- string = "Generic";
-- break;
-- case VISOR_FUNCTION_DEBUGGER:
-- string = "Debugger";
-- break;
-- case VISOR_FUNCTION_HOTSYNC:
-- string = "HotSync";
-- break;
-- case VISOR_FUNCTION_CONSOLE:
-- string = "Console";
-- break;
-- case VISOR_FUNCTION_REMOTE_FILE_SYS:
-- string = "Remote File System";
-- break;
-- default:
-- string = "unknown";
-- break;
-- }
-- dev_info(dev, "%s: port %d, is for %s use\n",
-- serial->type->description,
-- connection_info->connections[i].port, string);
-- }
-+ if (retval != sizeof(*connection_info)) {
-+ dev_err(dev, "Invalid connection information received from device\n");
-+ retval = -ENODEV;
-+ goto exit;
- }
-- /*
-- * Handle devices that report invalid stuff here.
-- */
-+
-+ connection_info = (struct visor_connection_info *)transfer_buffer;
-+
-+ num_ports = le16_to_cpu(connection_info->num_ports);
-+
-+ /* Handle devices that report invalid stuff here. */
- if (num_ports == 0 || num_ports > 2) {
- dev_warn(dev, "%s: No valid connect info available\n",
- serial->type->description);
- num_ports = 2;
- }
-
-+ for (i = 0; i < num_ports; ++i) {
-+ switch (connection_info->connections[i].port_function_id) {
-+ case VISOR_FUNCTION_GENERIC:
-+ string = "Generic";
-+ break;
-+ case VISOR_FUNCTION_DEBUGGER:
-+ string = "Debugger";
-+ break;
-+ case VISOR_FUNCTION_HOTSYNC:
-+ string = "HotSync";
-+ break;
-+ case VISOR_FUNCTION_CONSOLE:
-+ string = "Console";
-+ break;
-+ case VISOR_FUNCTION_REMOTE_FILE_SYS:
-+ string = "Remote File System";
-+ break;
-+ default:
-+ string = "unknown";
-+ break;
-+ }
-+ dev_info(dev, "%s: port %d, is for %s use\n",
-+ serial->type->description,
-+ connection_info->connections[i].port, string);
-+ }
- dev_info(dev, "%s: Number of ports: %d\n", serial->type->description,
- num_ports);
-