[v2] tunables: Disallow negative values for some tunables

Message ID 20210205084106.4151072-1-siddhesh@sourceware.org
State Committed
Commit 228f30ab4724d4087d5f52018873fde22efea6e2
Headers
Series [v2] tunables: Disallow negative values for some tunables |

Commit Message

Siddhesh Poyarekar Feb. 5, 2021, 8:41 a.m. UTC
  The glibc.malloc.mmap_max tunable as well as al of the INT_32 tunables
don't have use for negative values, so pin the hardcoded limits in the
non-negative range of INT.  There's no real benefit in any of those
use cases for the extended range of unsigned, so I have avoided added
a new type to keep things simple.
---

Change from v1: Fix tst-rtld-list-tunables.exp.

 elf/dl-tunables.list           | 6 ++++++
 elf/tst-rtld-list-tunables.exp | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)
  

Comments

Carlos O'Donell Feb. 10, 2021, 1:04 p.m. UTC | #1
On 2/5/21 3:41 AM, Siddhesh Poyarekar via Libc-alpha wrote:
> The glibc.malloc.mmap_max tunable as well as al of the INT_32 tunables
> don't have use for negative values, so pin the hardcoded limits in the
> non-negative range of INT.  There's no real benefit in any of those
> use cases for the extended range of unsigned, so I have avoided added
> a new type to keep things simple.

I already ack'd the v1, which I thought was good.

LGTM.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> ---
> 
> Change from v1: Fix tst-rtld-list-tunables.exp.
> 
>  elf/dl-tunables.list           | 6 ++++++
>  elf/tst-rtld-list-tunables.exp | 2 +-
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list
> index 3cf0ad83ec..8ddd4a2314 100644
> --- a/elf/dl-tunables.list
> +++ b/elf/dl-tunables.list
> @@ -64,6 +64,7 @@ glibc {
>        type: INT_32
>        env_alias: MALLOC_MMAP_MAX_
>        security_level: SXID_IGNORE
> +      minval: 0
>      }
>      arena_max {
>        type: SIZE_T
> @@ -109,22 +110,27 @@ glibc {
>      skip_lock_busy {
>        type: INT_32
>        default: 3
> +      minval: 0
>      }
>      skip_lock_internal_abort {
>        type: INT_32
>        default: 3
> +      minval: 0
>      }
>      skip_lock_after_retries {
>        type: INT_32
>        default: 3
> +      minval: 0
>      }
>      tries {
>        type: INT_32
>        default: 3
> +      minval: 0
>      }
>      skip_trylock_internal_abort {
>        type: INT_32
>        default: 3
> +      minval: 0

OK.

>      }
>    }
>  
> diff --git a/elf/tst-rtld-list-tunables.exp b/elf/tst-rtld-list-tunables.exp
> index 4f3f7ee4e3..9f66c52885 100644
> --- a/elf/tst-rtld-list-tunables.exp
> +++ b/elf/tst-rtld-list-tunables.exp
> @@ -1,7 +1,7 @@
>  glibc.malloc.arena_max: 0x0 (min: 0x1, max: 0x[f]+)
>  glibc.malloc.arena_test: 0x0 (min: 0x1, max: 0x[f]+)
>  glibc.malloc.check: 0 (min: 0, max: 3)
> -glibc.malloc.mmap_max: 0 (min: -2147483648, max: 2147483647)
> +glibc.malloc.mmap_max: 0 (min: 0, max: 2147483647)

OK. Yes, the -nve range is silly.

>  glibc.malloc.mmap_threshold: 0x0 (min: 0x0, max: 0x[f]+)
>  glibc.malloc.mxfast: 0x0 (min: 0x0, max: 0x[f]+)
>  glibc.malloc.perturb: 0 (min: 0, max: 255)
>
  

Patch

diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list
index 3cf0ad83ec..8ddd4a2314 100644
--- a/elf/dl-tunables.list
+++ b/elf/dl-tunables.list
@@ -64,6 +64,7 @@  glibc {
       type: INT_32
       env_alias: MALLOC_MMAP_MAX_
       security_level: SXID_IGNORE
+      minval: 0
     }
     arena_max {
       type: SIZE_T
@@ -109,22 +110,27 @@  glibc {
     skip_lock_busy {
       type: INT_32
       default: 3
+      minval: 0
     }
     skip_lock_internal_abort {
       type: INT_32
       default: 3
+      minval: 0
     }
     skip_lock_after_retries {
       type: INT_32
       default: 3
+      minval: 0
     }
     tries {
       type: INT_32
       default: 3
+      minval: 0
     }
     skip_trylock_internal_abort {
       type: INT_32
       default: 3
+      minval: 0
     }
   }
 
diff --git a/elf/tst-rtld-list-tunables.exp b/elf/tst-rtld-list-tunables.exp
index 4f3f7ee4e3..9f66c52885 100644
--- a/elf/tst-rtld-list-tunables.exp
+++ b/elf/tst-rtld-list-tunables.exp
@@ -1,7 +1,7 @@ 
 glibc.malloc.arena_max: 0x0 (min: 0x1, max: 0x[f]+)
 glibc.malloc.arena_test: 0x0 (min: 0x1, max: 0x[f]+)
 glibc.malloc.check: 0 (min: 0, max: 3)
-glibc.malloc.mmap_max: 0 (min: -2147483648, max: 2147483647)
+glibc.malloc.mmap_max: 0 (min: 0, max: 2147483647)
 glibc.malloc.mmap_threshold: 0x0 (min: 0x0, max: 0x[f]+)
 glibc.malloc.mxfast: 0x0 (min: 0x0, max: 0x[f]+)
 glibc.malloc.perturb: 0 (min: 0, max: 255)