50 fprintf(stderr,
"Sandbox maximum allocation size reached, %ld requested in sandbox_alloc\n",
63 return (
void *) (hdr + 1);
89 fprintf(stderr,
"Sandbox maximum allocation size reached, %ld requested in sandbox_realloc\n",
104 return (
void *) (hdr + 1);
111 fprintf(stderr,
"Sandbox maximum allocation size reached, %ld requested in sandbox_realloc\n",
124 return (
void *) (hdr + 1);
165 fprintf(stderr,
"Sandbox global object:\n----------------\n%s----------------\n", globobj);
189 ret =
fread(buf, 1,
sizeof(buf), f);
217 fprintf(stderr,
"FATAL %ld: %s\n", (
long) code, (msg ? msg :
"no message"));
222int main(
int argc,
char *argv[]) {
227 fprintf(stderr,
"Usage: sandbox <test.js>\n");
static void * sandbox_alloc(void *udata, duk_size_t size)
static size_t max_allocated
static size_t total_allocated
static void * sandbox_realloc(void *udata, void *ptr, duk_size_t size)
static void sandbox_dump_memstate(void)
static void sandbox_fatal(duk_context *ctx, duk_errcode_t code, const char *msg)
static void sandbox_free(void *udata, void *ptr)
static duk_ret_t do_sandbox_test(duk_context *ctx)
duk_small_int_t duk_ret_t
duk_int_fast32_t duk_int_t
DUK_EXTERNAL void duk_concat(duk_context *ctx, duk_idx_t count)
DUK_EXTERNAL const char * duk_push_string(duk_context *ctx, const char *str)
DUK_EXTERNAL const char * duk_push_lstring(duk_context *ctx, const char *str, duk_size_t len)
DUK_EXTERNAL void duk_insert(duk_context *ctx, duk_idx_t to_index)
DUK_EXTERNAL duk_idx_t duk_get_top(duk_context *ctx)
DUK_EXTERNAL duk_int_t duk_safe_call(duk_context *ctx, duk_safe_call_function func, duk_idx_t nargs, duk_idx_t nrets)
DUK_EXTERNAL void duk_set_global_object(duk_context *ctx)
DUK_EXTERNAL void duk_destroy_heap(duk_context *ctx)
DUK_EXTERNAL void duk_call(duk_context *ctx, duk_idx_t nargs)
DUK_EXTERNAL const char * duk_require_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_context * duk_create_heap(duk_alloc_function alloc_func, duk_realloc_function realloc_func, duk_free_function free_func, void *heap_udata, duk_fatal_function fatal_handler)
#define duk_safe_to_string(ctx, index)
#define duk_eval_string(ctx, src)
#define duk_compile(ctx, flags)