Nicolai Stange
75f0b68b75
debugfs: open_proxy_open(): avoid double fops release
...
Debugfs' open_proxy_open(), the ->open() installed at all inodes created
through debugfs_create_file_unsafe(),
- grabs a reference to the original file_operations instance passed to
debugfs_create_file_unsafe() via fops_get(),
- installs it at the file's ->f_op by means of replace_fops()
- and calls fops_put() on it.
Since the semantics of replace_fops() are such that the reference's
ownership is transferred, the subsequent fops_put() will result in a double
release when the file is eventually closed.
Currently, this is not an issue since fops_put() basically does a
module_put() on the file_operations' ->owner only and there don't exist any
modules calling debugfs_create_file_unsafe() yet. This is expected to
change in the future though, c.f. commit c64688081490 ("debugfs: add
support for self-protecting attribute file fops").
Remove the call to fops_put() from open_proxy_open().
Fixes: 9fd4dcece43a ("debugfs: prevent access to possibly dead
file_operations at file open")
Signed-off-by: Nicolai Stange <nicstange@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-06-15 04:56:35 -07:00
..
2016-05-27 15:39:43 -04:00
2016-01-20 17:09:18 -08:00
2016-05-28 16:50:24 -07:00
2016-05-27 15:26:11 -07:00
2016-05-02 19:49:32 -04:00
2016-05-23 17:04:14 -07:00
2016-05-09 11:41:14 -04:00
2016-06-10 14:13:27 -07:00
2016-06-01 10:29:39 +02:00
2016-06-01 10:32:14 +02:00
2016-05-27 15:39:43 -04:00
2016-05-02 19:49:29 -04:00
2016-05-09 11:41:13 -04:00
2016-05-09 11:41:14 -04:00
2016-05-07 10:32:33 -07:00
2016-06-15 04:56:35 -07:00
2016-06-05 10:36:01 -07:00
2016-04-04 10:41:08 -07:00
2016-06-10 12:10:02 -07:00
2016-05-20 17:58:30 -07:00
2016-05-20 17:58:30 -07:00
2016-05-17 17:05:30 -07:00
2016-05-02 19:49:29 -04:00
2016-05-27 17:14:05 -07:00
2016-05-27 17:14:05 -07:00
2016-05-27 15:39:43 -04:00
2016-05-17 15:05:23 -07:00
2016-05-09 11:41:14 -04:00
2016-06-01 10:29:09 +02:00
2016-05-27 20:09:16 -04:00
2016-05-27 17:14:05 -07:00
2016-05-27 20:09:16 -04:00
2016-05-27 15:39:43 -04:00
2016-05-12 19:49:30 -04:00
2016-05-28 16:50:24 -07:00
2016-04-04 10:41:08 -07:00
2016-05-11 00:00:29 -04:00
2016-05-24 12:55:26 -07:00
2016-05-27 15:39:43 -04:00
2016-05-27 15:39:43 -04:00
2016-05-27 20:09:16 -04:00
2016-01-07 10:10:50 -05:00
2016-05-09 11:42:19 -04:00
2016-05-02 19:49:32 -04:00
2016-04-04 10:41:08 -07:00
2016-05-27 17:20:27 -07:00
2016-05-24 14:39:20 -07:00
2016-05-23 17:04:14 -07:00
2016-05-19 19:12:14 -07:00
2016-05-01 19:58:39 -04:00
2016-05-27 17:14:05 -07:00
2016-05-09 11:41:14 -04:00
2016-05-09 11:41:14 -04:00
2016-05-27 15:39:43 -04:00
2016-05-27 17:14:05 -07:00
2016-06-10 12:10:02 -07:00
2016-04-04 10:41:08 -07:00
2016-05-09 11:41:14 -04:00
2016-05-09 11:41:14 -04:00
2016-04-26 12:00:48 -04:00
2016-05-20 17:58:30 -07:00
2016-05-27 15:39:43 -04:00
2016-05-09 11:41:15 -04:00
2016-05-09 11:41:15 -04:00
2016-05-02 19:49:32 -04:00
2016-01-22 18:04:28 -05:00
2016-05-27 18:49:29 -07:00
2016-05-17 15:05:23 -07:00
2016-05-02 19:49:32 -04:00
2016-05-27 17:14:05 -07:00
2016-05-23 17:04:14 -07:00
2016-01-22 18:04:28 -05:00
2016-05-27 20:09:16 -04:00
2016-05-28 16:34:59 -07:00
2016-06-07 22:07:09 -04:00
2016-06-07 22:07:09 -04:00
2016-05-27 15:26:11 -07:00
2016-01-22 18:04:28 -05:00
2016-05-26 19:34:26 -07:00
2016-05-19 19:12:14 -07:00
2016-03-29 10:11:44 -07:00
2016-02-14 14:25:59 -08:00
2016-05-24 12:55:26 -07:00
2016-06-07 22:07:09 -04:00
2016-05-26 20:00:28 -07:00
2016-06-07 21:26:55 -04:00
2016-05-27 14:49:37 -07:00
2016-03-22 15:36:02 -07:00
2016-05-19 19:12:14 -07:00
2016-05-23 17:04:14 -07:00
2016-01-09 02:55:37 -05:00
2016-03-22 15:36:02 -07:00
2016-05-02 19:49:28 -04:00
2016-01-19 12:02:23 -05:00
2016-05-20 17:58:30 -07:00
2016-05-02 19:49:28 -04:00
2016-01-08 21:20:11 -05:00
2016-01-22 18:04:28 -05:00
2016-05-19 15:13:17 -06:00
2016-05-23 17:04:14 -07:00
2016-05-27 20:09:16 -04:00
2016-01-22 18:04:28 -05:00
2016-03-26 12:59:04 -07:00
2016-02-22 22:44:04 -05:00
2016-04-04 10:41:08 -07:00
2016-06-07 20:41:36 -07:00
2016-06-06 20:52:03 -05:00
2016-05-17 14:41:03 -07:00
2016-04-04 10:41:08 -07:00
2016-05-05 09:54:45 -05:00
2016-05-27 15:39:43 -04:00
2016-03-16 13:09:08 -04:00
2016-05-18 11:46:23 -07:00
2016-05-26 00:13:25 -04:00
2016-05-19 19:12:14 -07:00
2016-04-14 12:56:09 -07:00
2016-05-11 00:00:29 -04:00
2016-01-16 11:17:23 -08:00
2016-04-18 11:18:55 +02:00
2016-04-04 10:41:08 -07:00
2016-01-17 11:13:55 +01:00
2016-05-20 17:58:30 -07:00
2016-01-22 18:04:28 -05:00
2016-05-27 20:09:16 -04:00