aboutsummaryrefslogtreecommitdiff
path: root/src/magic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/magic.c')
-rw-r--r--src/magic.c27
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;