mirror of
https://github.com/PCRE2Project/pcre2.git
synced 2025-10-20 04:25:35 +08:00

pcre2_jit_stack_create() allows the user to indicate how big of a stack size JIT should be able to allocate and use, using a size_t variable which should be able to hold bigger values than reasonable. Internally, the value is rounded to the next 8K, but if the value is unreasonable large, would overflow and could result in a smaller than expected stack or a maximun size that is smaller than the minimum.. Avoid the overflow by checking the value and failing early, and while at it make the check clearer while documenting the failure mode. Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
41 lines
1.3 KiB
Groff
41 lines
1.3 KiB
Groff
.TH PCRE2_JIT_STACK_CREATE 3 "24 March 2017" "PCRE2 10.30"
|
|
.SH NAME
|
|
PCRE2 - Perl-compatible regular expressions (revised API)
|
|
.SH SYNOPSIS
|
|
.rs
|
|
.sp
|
|
.B #include <pcre2.h>
|
|
.PP
|
|
.nf
|
|
.B pcre2_jit_stack *pcre2_jit_stack_create(PCRE2_SIZE \fIstartsize\fP,
|
|
.B " PCRE2_SIZE \fImaxsize\fP, pcre2_general_context *\fIgcontext\fP);"
|
|
.fi
|
|
.
|
|
.SH DESCRIPTION
|
|
.rs
|
|
.sp
|
|
This function is used to create a stack for use by the code compiled by the JIT
|
|
compiler. The first two arguments are a starting size for the stack, and a
|
|
maximum size to which it is allowed to grow. The final argument is a general
|
|
context, for memory allocation functions, or NULL for standard memory
|
|
allocation. The result can be passed to the JIT run-time code by calling
|
|
\fBpcre2_jit_stack_assign()\fP to associate the stack with a compiled pattern,
|
|
which can then be processed by \fBpcre2_match()\fP or \fBpcre2_jit_match()\fP.
|
|
A maximum stack size of 512KiB to 1MiB should be more than enough for any
|
|
pattern. If the stack couldn't be allocated or the values passed were not
|
|
reasonable, NULL will be returned. For more details, see the
|
|
.\" HREF
|
|
\fBpcre2jit\fP
|
|
.\"
|
|
page.
|
|
.P
|
|
There is a complete description of the PCRE2 native API in the
|
|
.\" HREF
|
|
\fBpcre2api\fP
|
|
.\"
|
|
page and a description of the POSIX API in the
|
|
.\" HREF
|
|
\fBpcre2posix\fP
|
|
.\"
|
|
page.
|