diff options
author | René Scharfe <l.s.r@web.de> | 2025-07-09 11:46:20 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2025-07-09 08:39:46 -0700 |
commit | 1d918bf2a5eb9d860df1dd115ef2641d7b5870e9 (patch) | |
tree | 37a7b380e633b97199735c42a418c4982040f9ad /parse-options.h | |
parent | feeebbf1b7d5ed8761355d354e9529c791b77e7d (diff) |
parse-options: add precision handling for OPTION_BITOP
Similar to 09705696f7 (parse-options: introduce precision handling for
`OPTION_INTEGER`, 2025-04-17) support value variables of different sizes
for OPTION_BITOP. Do that by requiring their "precision" to be set,
casting their "value" pointer accordingly and checking whether the value
fits.
Check if "devfal" fits into an integer variable with the given
"precision", but don't check "extra", as its value is only used to clear
bits, so cannot lead to an overflow. Not checking continues to allow
e.g., using -1 to clear all bits even if the value variable has a
narrower type than intptr_t.
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'parse-options.h')
-rw-r--r-- | parse-options.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/parse-options.h b/parse-options.h index 076f88b384..8bdf469ae9 100644 --- a/parse-options.h +++ b/parse-options.h @@ -240,6 +240,7 @@ struct option { .short_name = (s), \ .long_name = (l), \ .value = (v), \ + .precision = sizeof(*v), \ .help = (h), \ .flags = PARSE_OPT_NOARG|PARSE_OPT_NONEG, \ .defval = (set), \ |