Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
size_t *converted_size)
{
size_t *converted_size)
{
- size_t i_len, o_len, destlen = (srclen * 3) / 2;
+ size_t i_len, o_len, destlen;
size_t retval;
const char *inbuf = (const char *)src;
char *outbuf = NULL, *ob = NULL;
size_t retval;
const char *inbuf = (const char *)src;
char *outbuf = NULL, *ob = NULL;
+ if (srclen >= SIZE_MAX / 3) {
+ DBG_ERR("convert_string_talloc: "
+ "srclen is %zu, destlen would wrap!\n",
+ srclen);
+ errno = EOPNOTSUPP;
+ return false;
+ }
+ destlen = srclen * 3 / 2;
+
convert:
/* +2 is for ucs2 null termination. */
convert:
/* +2 is for ucs2 null termination. */