diff options
Diffstat (limited to 'src/magic.c')
-rw-r--r-- | src/magic.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/magic.c b/src/magic.c index 052f99752c58..def46fa39f89 100644 --- a/src/magic.c +++ b/src/magic.c @@ -33,7 +33,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: magic.c,v 1.121 2023/02/09 17:45:19 christos Exp $") +FILE_RCSID("@(#)$File: magic.c,v 1.123 2023/12/29 18:04:48 christos Exp $") #endif /* lint */ #include "magic.h" @@ -612,33 +612,37 @@ magic_setparam(struct magic_set *ms, int param, const void *val) { if (ms == NULL) return -1; + const size_t v = *CAST(const size_t *, val); switch (param) { case MAGIC_PARAM_INDIR_MAX: - ms->indir_max = CAST(uint16_t, *CAST(const size_t *, val)); + ms->indir_max = CAST(uint16_t, v); return 0; case MAGIC_PARAM_NAME_MAX: - ms->name_max = CAST(uint16_t, *CAST(const size_t *, val)); + ms->name_max = CAST(uint16_t, v); return 0; case MAGIC_PARAM_ELF_PHNUM_MAX: - ms->elf_phnum_max = CAST(uint16_t, *CAST(const size_t *, val)); + ms->elf_phnum_max = CAST(uint16_t, v); return 0; case MAGIC_PARAM_ELF_SHNUM_MAX: - ms->elf_shnum_max = CAST(uint16_t, *CAST(const size_t *, val)); + ms->elf_shnum_max = CAST(uint16_t, v); return 0; case MAGIC_PARAM_ELF_SHSIZE_MAX: - ms->elf_shsize_max = *CAST(const size_t *, val); + ms->elf_shsize_max = v; return 0; case MAGIC_PARAM_ELF_NOTES_MAX: - ms->elf_notes_max = CAST(uint16_t, *CAST(const size_t *, val)); + ms->elf_notes_max = CAST(uint16_t, v); return 0; case MAGIC_PARAM_REGEX_MAX: - ms->regex_max = CAST(uint16_t, *CAST(const size_t *, val)); + ms->regex_max = CAST(uint16_t, v); return 0; case MAGIC_PARAM_BYTES_MAX: - ms->bytes_max = *CAST(const size_t *, val); + ms->bytes_max = v; return 0; case MAGIC_PARAM_ENCODING_MAX: - ms->encoding_max = *CAST(const size_t *, val); + ms->encoding_max = v; + return 0; + case MAGIC_PARAM_MAGWARN_MAX: + ms->magwarn_max = v; return 0; default: errno = EINVAL; @@ -679,6 +683,9 @@ magic_getparam(struct magic_set *ms, int param, void *val) case MAGIC_PARAM_ENCODING_MAX: *CAST(size_t *, val) = ms->encoding_max; return 0; + case MAGIC_PARAM_MAGWARN_MAX: + *CAST(size_t *, val) = ms->magwarn_max; + return 0; default: errno = EINVAL; return -1; |