Added functions for smashing the stack and memory :)
This commit is contained in:
parent
b46ee941d4
commit
0c745590ec
@ -395,6 +395,13 @@ size_t do_amx_format_parameter(AMX *amx, cell *params, const char **fmtstr, int
|
|||||||
return _snprintf(output, maxlen, fmtptr, *(REAL *)addr);
|
return _snprintf(output, maxlen, fmtptr, *(REAL *)addr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'p':
|
||||||
|
{
|
||||||
|
FMTPM_NEXTPARAM();
|
||||||
|
return _snprintf(output, maxlen, fmtptr, addr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'x':
|
||||||
case 'i':
|
case 'i':
|
||||||
case 'd':
|
case 'd':
|
||||||
case 'c':
|
case 'c':
|
||||||
|
@ -3661,9 +3661,35 @@ static cell AMX_NATIVE_CALL set_fail_state(AMX *amx, cell *params)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL amx_var_addr(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
if (params[0] / sizeof(cell) > 0)
|
||||||
|
{
|
||||||
|
return params[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL amx_addr_val(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
cell *addr;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
if ( (err=amx_GetAddr(amx, params[1], &addr)) != AMX_ERR_NONE )
|
||||||
|
{
|
||||||
|
LogError(amx, err, "Bad reference %d supplied", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return addr ? *addr : 0;
|
||||||
|
}
|
||||||
|
|
||||||
AMX_NATIVE_INFO amxmodx_Natives[] =
|
AMX_NATIVE_INFO amxmodx_Natives[] =
|
||||||
{
|
{
|
||||||
{"abort", amx_abort},
|
{"abort", amx_abort},
|
||||||
|
{"amx_addr_val", amx_addr_val},
|
||||||
|
{"amx_var_addr", amx_var_addr},
|
||||||
{"callfunc_begin", callfunc_begin},
|
{"callfunc_begin", callfunc_begin},
|
||||||
{"callfunc_begin_i", callfunc_begin_i},
|
{"callfunc_begin_i", callfunc_begin_i},
|
||||||
{"callfunc_end", callfunc_end},
|
{"callfunc_end", callfunc_end},
|
||||||
|
Loading…
Reference in New Issue
Block a user