Преглед изворни кода

HID: fix reference count leak hidraw

The hidraw subsystem has a bug that prevents the close syscall from ever
reaching the low level driver, leading to a resource leak. Fix by replacing
postdecrement with predecrement.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Oliver Neukum пре 16 година
родитељ
комит
b8a832b1c0
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      drivers/hid/hidraw.c

+ 1 - 1
drivers/hid/hidraw.c

@@ -208,7 +208,7 @@ static int hidraw_release(struct inode * inode, struct file * file)
 
 
 	list_del(&list->node);
 	list_del(&list->node);
 	dev = hidraw_table[minor];
 	dev = hidraw_table[minor];
-	if (!dev->open--) {
+	if (!--dev->open) {
 		if (list->hidraw->exist)
 		if (list->hidraw->exist)
 			dev->hid->ll_driver->close(dev->hid);
 			dev->hid->ll_driver->close(dev->hid);
 		else
 		else