diff options
Diffstat (limited to 'sys/libkern/iconv.c')
-rw-r--r-- | sys/libkern/iconv.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/libkern/iconv.c b/sys/libkern/iconv.c index 5bc1fdf..7010bb2 100644 --- a/sys/libkern/iconv.c +++ b/sys/libkern/iconv.c @@ -379,6 +379,12 @@ iconv_sysctl_add(SYSCTL_HANDLER_ARGS) return EINVAL; if (din.ia_datalen > ICONV_CSMAXDATALEN) return EINVAL; + if (strlen(din.ia_from) >= ICONV_CSNMAXLEN) + return EINVAL; + if (strlen(din.ia_to) >= ICONV_CSNMAXLEN) + return EINVAL; + if (strlen(din.ia_converter) >= ICONV_CNVNMAXLEN) + return EINVAL; if (iconv_lookupconv(din.ia_converter, &dcp) != 0) return EINVAL; error = iconv_register_cspair(din.ia_to, din.ia_from, dcp, NULL, &csp); |