Welcome! Log In Create A New Profile

Advanced

[nginx] Core: ngx_regex_compile() error handling fixes.

Maxim Dounin
September 08, 2014 04:30PM
details: http://hg.nginx.org/nginx/rev/e7f6991eca47
branches:
changeset: 5824:e7f6991eca47
user: Maxim Dounin <mdounin@mdounin.ru>
date: Mon Sep 08 21:35:53 2014 +0400
description:
Core: ngx_regex_compile() error handling fixes.

Now we actually return NGX_ERROR on errors, and provide an error
string for memory allocation errors.

Reported by Markus Linnala.

diffstat:

src/core/ngx_regex.c | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)

diffs (38 lines):

diff --git a/src/core/ngx_regex.c b/src/core/ngx_regex.c
--- a/src/core/ngx_regex.c
+++ b/src/core/ngx_regex.c
@@ -149,7 +149,7 @@ ngx_regex_compile(ngx_regex_compile_t *r

rc->regex = ngx_pcalloc(rc->pool, sizeof(ngx_regex_t));
if (rc->regex == NULL) {
- return NGX_ERROR;
+ goto nomem;
}

rc->regex->code = re;
@@ -159,7 +159,7 @@ ngx_regex_compile(ngx_regex_compile_t *r
if (ngx_pcre_studies != NULL) {
elt = ngx_list_push(ngx_pcre_studies);
if (elt == NULL) {
- return NGX_ERROR;
+ goto nomem;
}

elt->regex = rc->regex;
@@ -204,7 +204,15 @@ failed:

rc->err.len = ngx_snprintf(rc->err.data, rc->err.len, p, &rc->pattern, n)
- rc->err.data;
- return NGX_OK;
+ return NGX_ERROR;
+
+nomem:
+
+ rc->err.len = ngx_snprintf(rc->err.data, rc->err.len,
+ "regex \"%V\" compilation failed: no memory",
+ &rc->pattern)
+ - rc->err.data;
+ return NGX_ERROR;
}



_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Core: ngx_regex_compile() error handling fixes.

Maxim Dounin 660 September 08, 2014 04:30PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 139
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready