git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Check query strings of query-style lookups for quoting. Bug 2850
[exim.git]
/
src
/
src
/
regex.c
diff --git
a/src/src/regex.c
b/src/src/regex.c
index 35af5e1b5b20578f6b9db05fbfa06819695d397c..c1acf4c6e9d7e2c59f50a5e38568f0592cda354e 100644
(file)
--- a/
src/src/regex.c
+++ b/
src/src/regex.c
@@
-4,7
+4,7
@@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-2015
* License: GPL
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-2015
* License: GPL
- * Copyright (c) The Exim Maintainers 2016 - 20
18
+ * Copyright (c) The Exim Maintainers 2016 - 20
21
*/
/* Code for matching regular expressions against headers and body.
*/
/* Code for matching regular expressions against headers and body.
@@
-50,12
+50,12
@@
while ((regex_string = string_nextinlist(&list, &sep, NULL, 0)))
uschar errbuf[128];
pcre2_get_error_message(err, errbuf, sizeof(errbuf));
log_write(0, LOG_MAIN,
uschar errbuf[128];
pcre2_get_error_message(err, errbuf, sizeof(errbuf));
log_write(0, LOG_MAIN,
- "regex acl condition warning - error in regex '%s': %s at offset %l, skipped.",
+ "regex acl condition warning - error in regex '%s': %s at offset %l
d
, skipped.",
regex_string, errbuf, (long)pcre_erroffset);
continue;
}
regex_string, errbuf, (long)pcre_erroffset);
continue;
}
- ri = store_get(sizeof(pcre_list),
FALSE
);
+ ri = store_get(sizeof(pcre_list),
GET_UNTAINTED
);
ri->re = re;
ri->pcre_text = regex_string;
ri->next = re_list_head;
ri->re = re;
ri->pcre_text = regex_string;
ri->next = re_list_head;
@@
-85,7
+85,7
@@
for (pcre_list * ri = re_list_head; ri; ri = ri->next)
PCRE2_UCHAR * cstr;
PCRE2_SIZE cslen;
pcre2_substring_get_bynumber(md, nn, &cstr, &cslen);
PCRE2_UCHAR * cstr;
PCRE2_SIZE cslen;
pcre2_substring_get_bynumber(md, nn, &cstr, &cslen);
- regex_vars[nn-1] = US cstr;
+ regex_vars[nn-1] =
C
US cstr;
}
return OK;
}
return OK;
@@
-133,7
+133,7
@@
if (!(re_list_head = compile(*listptr)))
return FAIL; /* no regexes -> nothing to do */
/* match each line against all regexes */
return FAIL; /* no regexes -> nothing to do */
/* match each line against all regexes */
-linebuffer = store_get(32767,
TRUE); /* tainted */
+linebuffer = store_get(32767,
GET_TAINTED);
while (fgets(CS linebuffer, 32767, mbox_file))
{
if ( mime_stream && mime_current_boundary /* check boundary */
while (fgets(CS linebuffer, 32767, mbox_file))
{
if ( mime_stream && mime_current_boundary /* check boundary */
@@
-204,7
+204,7
@@
if (!(f = fopen(CS mime_decoded_filename, "rb")))
}
/* get 32k memory, tainted */
}
/* get 32k memory, tainted */
-mime_subject = store_get(32767,
TRUE
);
+mime_subject = store_get(32767,
GET_TAINTED
);
mime_subject_len = fread(mime_subject, 1, 32766, f);
mime_subject_len = fread(mime_subject, 1, 32766, f);