Changed AddString to be failable
This commit is contained in:
parent
7c3bcc9c25
commit
272655f340
@ -146,7 +146,7 @@ error_out:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddString(char **buf_p, size_t &maxlen, const char *string, int width, int prec, int flags)
|
bool AddString(char **buf_p, size_t &maxlen, const char *string, int width, int prec, int flags)
|
||||||
{
|
{
|
||||||
int size = 0;
|
int size = 0;
|
||||||
char *buf;
|
char *buf;
|
||||||
@ -196,6 +196,8 @@ void AddString(char **buf_p, size_t &maxlen, const char *string, int width, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
*buf_p = buf;
|
*buf_p = buf;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddFloat(char **buf_p, size_t &maxlen, double fval, int width, int prec, int flags)
|
void AddFloat(char **buf_p, size_t &maxlen, double fval, int width, int prec, int flags)
|
||||||
@ -1140,7 +1142,8 @@ reswitch:
|
|||||||
sizeof(buffer),
|
sizeof(buffer),
|
||||||
"Console<0><Console><Console>");
|
"Console<0><Console><Console>");
|
||||||
}
|
}
|
||||||
AddString(&buf_p, llen, buffer, width, prec, flags);
|
if (!AddString(&buf_p, llen, buffer, width, prec, flags))
|
||||||
|
return pCtx->ThrowNativeError("Escaped string would be truncated (arg %d)", arg);
|
||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1155,7 +1158,8 @@ reswitch:
|
|||||||
if (!bridge->DescribePlayer(*value, &name, nullptr, nullptr))
|
if (!bridge->DescribePlayer(*value, &name, nullptr, nullptr))
|
||||||
return pCtx->ThrowNativeError("Client index %d is invalid (arg %d)", *value, arg);
|
return pCtx->ThrowNativeError("Client index %d is invalid (arg %d)", *value, arg);
|
||||||
}
|
}
|
||||||
AddString(&buf_p, llen, name, width, prec, flags);
|
if (!AddString(&buf_p, llen, name, width, prec, flags))
|
||||||
|
return pCtx->ThrowNativeError("Escaped string would be truncated (arg %d)", arg);
|
||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1164,7 +1168,8 @@ reswitch:
|
|||||||
CHECK_ARGS(0);
|
CHECK_ARGS(0);
|
||||||
char *str;
|
char *str;
|
||||||
pCtx->LocalToString(params[arg], &str);
|
pCtx->LocalToString(params[arg], &str);
|
||||||
AddString(&buf_p, llen, str, width, prec, flags);
|
if (!AddString(&buf_p, llen, str, width, prec, flags))
|
||||||
|
return pCtx->ThrowNativeError("Escaped string would be truncated (arg %d)", arg);
|
||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user