* [PATCH 1/2] rust_binderfs: fix ida_alloc_max() upper bound
@ 2026-01-27 23:55 Carlos Llamas
2026-01-27 23:55 ` [PATCH 2/2] binderfs: " Carlos Llamas
2026-01-28 9:18 ` [PATCH 1/2] rust_binderfs: " Alice Ryhl
0 siblings, 2 replies; 3+ messages in thread
From: Carlos Llamas @ 2026-01-27 23:55 UTC (permalink / raw)
To: Greg Kroah-Hartman, Arve Hjønnevåg, Todd Kjos,
Christian Brauner, Carlos Llamas, Alice Ryhl, Dmitry Antipov,
Al Viro, NeilBrown, Matt Gilbride, Wedson Almeida Filho, Li Li,
Paul Moore
Cc: kernel-team, linux-kernel, stable, kernel test robot
The 'max' argument of ida_alloc_max() takes the maximum valid ID and not
the "count". Using an ID of BINDERFS_MAX_MINOR (1 << 20) for dev->minor
would exceed the limits of minor numbers (20-bits). Fix this off-by-one
error by subtracting 1 from the 'max'.
Cc: stable@vger.kernel.org
Fixes: eafedbc7c050 ("rust_binder: add Rust Binder driver")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/r/202512181203.IOv6IChH-lkp@intel.com/
Signed-off-by: Carlos Llamas <cmllamas@google.com>
---
drivers/android/binder/rust_binderfs.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/android/binder/rust_binderfs.c b/drivers/android/binder/rust_binderfs.c
index c69026df775c..88374b31ab7c 100644
--- a/drivers/android/binder/rust_binderfs.c
+++ b/drivers/android/binder/rust_binderfs.c
@@ -132,8 +132,8 @@ static int binderfs_binder_device_create(struct inode *ref_inode,
mutex_lock(&binderfs_minors_mutex);
if (++info->device_count <= info->mount_opts.max)
minor = ida_alloc_max(&binderfs_minors,
- use_reserve ? BINDERFS_MAX_MINOR :
- BINDERFS_MAX_MINOR_CAPPED,
+ use_reserve ? BINDERFS_MAX_MINOR - 1 :
+ BINDERFS_MAX_MINOR_CAPPED - 1,
GFP_KERNEL);
else
minor = -ENOSPC;
@@ -405,8 +405,8 @@ static int binderfs_binder_ctl_create(struct super_block *sb)
/* Reserve a new minor number for the new device. */
mutex_lock(&binderfs_minors_mutex);
minor = ida_alloc_max(&binderfs_minors,
- use_reserve ? BINDERFS_MAX_MINOR :
- BINDERFS_MAX_MINOR_CAPPED,
+ use_reserve ? BINDERFS_MAX_MINOR - 1 :
+ BINDERFS_MAX_MINOR_CAPPED - 1,
GFP_KERNEL);
mutex_unlock(&binderfs_minors_mutex);
if (minor < 0) {
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] binderfs: fix ida_alloc_max() upper bound
2026-01-27 23:55 [PATCH 1/2] rust_binderfs: fix ida_alloc_max() upper bound Carlos Llamas
@ 2026-01-27 23:55 ` Carlos Llamas
2026-01-28 9:18 ` [PATCH 1/2] rust_binderfs: " Alice Ryhl
1 sibling, 0 replies; 3+ messages in thread
From: Carlos Llamas @ 2026-01-27 23:55 UTC (permalink / raw)
To: Greg Kroah-Hartman, Arve Hjønnevåg, Todd Kjos,
Christian Brauner, Carlos Llamas, Alice Ryhl
Cc: kernel-team, linux-kernel, stable, Todd Kjos
The 'max' argument of ida_alloc_max() takes the maximum valid ID and not
the "count". Using an ID of BINDERFS_MAX_MINOR (1 << 20) for dev->minor
would exceed the limits of minor numbers (20-bits). Fix this off-by-one
error by subtracting 1 from the 'max'.
Cc: stable@vger.kernel.org
Fixes: 3ad20fe393b3 ("binder: implement binderfs")
Signed-off-by: Carlos Llamas <cmllamas@google.com>
---
drivers/android/binderfs.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/android/binderfs.c b/drivers/android/binderfs.c
index b46bcb91072d..9f8a18c88d66 100644
--- a/drivers/android/binderfs.c
+++ b/drivers/android/binderfs.c
@@ -132,8 +132,8 @@ static int binderfs_binder_device_create(struct inode *ref_inode,
mutex_lock(&binderfs_minors_mutex);
if (++info->device_count <= info->mount_opts.max)
minor = ida_alloc_max(&binderfs_minors,
- use_reserve ? BINDERFS_MAX_MINOR :
- BINDERFS_MAX_MINOR_CAPPED,
+ use_reserve ? BINDERFS_MAX_MINOR - 1 :
+ BINDERFS_MAX_MINOR_CAPPED - 1,
GFP_KERNEL);
else
minor = -ENOSPC;
@@ -408,8 +408,8 @@ static int binderfs_binder_ctl_create(struct super_block *sb)
/* Reserve a new minor number for the new device. */
mutex_lock(&binderfs_minors_mutex);
minor = ida_alloc_max(&binderfs_minors,
- use_reserve ? BINDERFS_MAX_MINOR :
- BINDERFS_MAX_MINOR_CAPPED,
+ use_reserve ? BINDERFS_MAX_MINOR - 1 :
+ BINDERFS_MAX_MINOR_CAPPED - 1,
GFP_KERNEL);
mutex_unlock(&binderfs_minors_mutex);
if (minor < 0) {
--
2.52.0.457.g6b5491de43-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH 1/2] rust_binderfs: fix ida_alloc_max() upper bound
2026-01-27 23:55 [PATCH 1/2] rust_binderfs: fix ida_alloc_max() upper bound Carlos Llamas
2026-01-27 23:55 ` [PATCH 2/2] binderfs: " Carlos Llamas
@ 2026-01-28 9:18 ` Alice Ryhl
1 sibling, 0 replies; 3+ messages in thread
From: Alice Ryhl @ 2026-01-28 9:18 UTC (permalink / raw)
To: Carlos Llamas
Cc: Greg Kroah-Hartman, Arve Hjønnevåg, Todd Kjos,
Christian Brauner, Dmitry Antipov, Al Viro, NeilBrown,
Matt Gilbride, Wedson Almeida Filho, Li Li, Paul Moore,
kernel-team, linux-kernel, stable, kernel test robot
On Tue, Jan 27, 2026 at 11:55:10PM +0000, Carlos Llamas wrote:
> The 'max' argument of ida_alloc_max() takes the maximum valid ID and not
> the "count". Using an ID of BINDERFS_MAX_MINOR (1 << 20) for dev->minor
> would exceed the limits of minor numbers (20-bits). Fix this off-by-one
> error by subtracting 1 from the 'max'.
>
> Cc: stable@vger.kernel.org
> Fixes: eafedbc7c050 ("rust_binder: add Rust Binder driver")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/r/202512181203.IOv6IChH-lkp@intel.com/
> Signed-off-by: Carlos Llamas <cmllamas@google.com>
For both patches:
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-01-28 9:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-27 23:55 [PATCH 1/2] rust_binderfs: fix ida_alloc_max() upper bound Carlos Llamas
2026-01-27 23:55 ` [PATCH 2/2] binderfs: " Carlos Llamas
2026-01-28 9:18 ` [PATCH 1/2] rust_binderfs: " Alice Ryhl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox