Explorar o código

usbserial: Reference leak

A sufficiently-large number of USB serial devices causes a reference leak
when /proc/tty/drivers/usbserial is read.

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Matthias Urlichs %!s(int64=18) %!d(string=hai) anos
pai
achega
5992583889
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      drivers/usb/serial/usb-serial.c

+ 3 - 1
drivers/usb/serial/usb-serial.c

@@ -464,8 +464,10 @@ static int serial_read_proc (char *page, char **start, off_t off, int count, int
 		length += sprintf (page+length, " path:%s", tmp);
 			
 		length += sprintf (page+length, "\n");
-		if ((length + begin) > (off + count))
+		if ((length + begin) > (off + count)) {
+			usb_serial_put(serial);
 			goto done;
+		}
 		if ((length + begin) < off) {
 			begin += length;
 			length = 0;