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
Hints DB interface: convert from macros to inlinable functions.
[exim.git]
/
src
/
src
/
filter.c
diff --git
a/src/src/filter.c
b/src/src/filter.c
index bd9a3f15e47289672ff69b2357796673281015a2..210f7b0e2441c0119ac47d815197f6e2c84392fc 100644
(file)
--- a/
src/src/filter.c
+++ b/
src/src/filter.c
@@
-498,7
+498,7
@@
for (;;)
/* Build a condition block from the specific word. */
/* Build a condition block from the specific word. */
- c = store_get(sizeof(condition_block),
FALSE
);
+ c = store_get(sizeof(condition_block),
GET_UNTAINTED
);
c->left.u = c->right.u = NULL;
c->testfor = testfor;
testfor = TRUE;
c->left.u = c->right.u = NULL;
c->testfor = testfor;
testfor = TRUE;
@@
-528,7
+528,7
@@
for (;;)
}
ptr = nextitem(ptr, buffer, sizeof(buffer), TRUE);
if (*error_pointer) break;
}
ptr = nextitem(ptr, buffer, sizeof(buffer), TRUE);
if (*error_pointer) break;
- aa = store_get(sizeof(string_item),
FALSE
);
+ aa = store_get(sizeof(string_item),
GET_UNTAINTED
);
aa->text = string_copy(buffer);
aa->next = c->left.a;
c->left.a = aa;
aa->text = string_copy(buffer);
aa->next = c->left.a;
c->left.a = aa;
@@
-684,7
+684,7
@@
for (;;)
else if (Ustrcmp(buffer, "and") == 0)
{
else if (Ustrcmp(buffer, "and") == 0)
{
- condition_block *
andc = store_get(sizeof(condition_block), FALSE
);
+ condition_block *
andc = store_get(sizeof(condition_block), GET_UNTAINTED
);
andc->parent = current_parent;
andc->type = cond_and;
andc->testfor = TRUE;
andc->parent = current_parent;
andc->type = cond_and;
andc->testfor = TRUE;
@@
-702,8
+702,8
@@
for (;;)
else if (Ustrcmp(buffer, "or") == 0)
{
else if (Ustrcmp(buffer, "or") == 0)
{
- condition_block *
orc = store_get(sizeof(condition_block), FALSE
);
- condition_block *or_parent = NULL;
+ condition_block *
orc = store_get(sizeof(condition_block), GET_UNTAINTED
);
+ condition_block *
or_parent = NULL;
if (current_parent)
{
if (current_parent)
{
@@
-860,6
+860,8
@@
terminated by white space, but there are two exceptions, which are the "if" and
as brackets are allowed in conditions and users will expect not to require
white space here. */
as brackets are allowed in conditions and users will expect not to require
white space here. */
+*buffer = '\0'; /* compiler quietening */
+
if (Ustrncmp(ptr, "if(", 3) == 0)
{
Ustrcpy(buffer, US"if");
if (Ustrncmp(ptr, "if(", 3) == 0)
{
Ustrcpy(buffer, US"if");
@@
-1019,9
+1021,10
@@
switch (command)
FALSE for logging commands, and it doesn't matter for testprint, as
that doesn't change the "delivered" status. */
FALSE for logging commands, and it doesn't matter for testprint, as
that doesn't change the "delivered" status. */
- if (*error_pointer) yield = FALSE; else
+ if (*error_pointer) yield = FALSE;
+ else
{
{
- new = store_get(sizeof(filter_cmd) + sizeof(union argtypes),
FALSE
);
+ new = store_get(sizeof(filter_cmd) + sizeof(union argtypes),
GET_UNTAINTED
);
new->next = NULL;
**lastcmdptr = new;
*lastcmdptr = &(new->next);
new->next = NULL;
**lastcmdptr = new;
*lastcmdptr = &(new->next);
@@
-1105,12
+1108,12
@@
switch (command)
/* Finish has no arguments; fmsg defaults to NULL */
case finish_command:
/* Finish has no arguments; fmsg defaults to NULL */
case finish_command:
- new = store_get(sizeof(filter_cmd),
FALSE
);
+ new = store_get(sizeof(filter_cmd),
GET_UNTAINTED
);
new->next = NULL;
**lastcmdptr = new;
*lastcmdptr = &(new->next);
new->command = command;
new->next = NULL;
**lastcmdptr = new;
*lastcmdptr = &(new->next);
new->command = command;
- new->seen = seen_force? seen_value : FALSE;
+ new->seen = seen_force
? seen_value : FALSE;
new->args[0].u = fmsg;
break;
new->args[0].u = fmsg;
break;
@@
-1129,7
+1132,7
@@
switch (command)
/* Set up the command block for if */
/* Set up the command block for if */
- new = store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes),
FALSE
);
+ new = store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes),
GET_UNTAINTED
);
new->next = NULL;
**lastcmdptr = new;
*lastcmdptr = &new->next;
new->next = NULL;
**lastcmdptr = new;
*lastcmdptr = &new->next;
@@
-1157,7
+1160,7
@@
switch (command)
while (had_else_endif == had_elif)
{
filter_cmd *newnew =
while (had_else_endif == had_elif)
{
filter_cmd *newnew =
- store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes),
FALSE
);
+ store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes),
GET_UNTAINTED
);
new->args[2].f = newnew;
new = newnew;
new->next = NULL;
new->args[2].f = newnew;
new = newnew;
new->next = NULL;
@@
-1210,10
+1213,10
@@
switch (command)
case mail_command:
case vacation_command:
case mail_command:
case vacation_command:
- new = store_get(sizeof(filter_cmd) + mailargs_total * sizeof(union argtypes),
FALSE
);
+ new = store_get(sizeof(filter_cmd) + mailargs_total * sizeof(union argtypes),
GET_UNTAINTED
);
new->next = NULL;
new->command = command;
new->next = NULL;
new->command = command;
- new->seen = seen_force? seen_value : FALSE;
+ new->seen = seen_force
? seen_value : FALSE;
new->noerror = noerror_force;
for (i = 0; i < mailargs_total; i++) new->args[i].u = NULL;
new->noerror = noerror_force;
for (i = 0; i < mailargs_total; i++) new->args[i].u = NULL;
@@
-1287,18
+1290,18
@@
switch (command)
if (command == vacation_command)
{
if (command == vacation_command)
{
- if (
new->args[mailarg_index_file].u == NULL
)
+ if (
!new->args[mailarg_index_file].u
)
{
new->args[mailarg_index_file].u = string_copy(US".vacation.msg");
new->args[mailarg_index_expand].u = US""; /* not NULL => TRUE */
}
{
new->args[mailarg_index_file].u = string_copy(US".vacation.msg");
new->args[mailarg_index_expand].u = US""; /* not NULL => TRUE */
}
- if (
new->args[mailarg_index_log].u == NULL
)
+ if (
!new->args[mailarg_index_log].u
)
new->args[mailarg_index_log].u = string_copy(US".vacation.log");
new->args[mailarg_index_log].u = string_copy(US".vacation.log");
- if (
new->args[mailarg_index_once].u == NULL
)
+ if (
!new->args[mailarg_index_once].u
)
new->args[mailarg_index_once].u = string_copy(US".vacation");
new->args[mailarg_index_once].u = string_copy(US".vacation");
- if (
new->args[mailarg_index_once_repeat].u == NULL
)
+ if (
!new->args[mailarg_index_once_repeat].u
)
new->args[mailarg_index_once_repeat].u = string_copy(US"7d");
new->args[mailarg_index_once_repeat].u = string_copy(US"7d");
- if (
new->args[mailarg_index_subject].u == NULL
)
+ if (
!new->args[mailarg_index_subject].u
)
new->args[mailarg_index_subject].u = string_copy(US"On vacation");
}
new->args[mailarg_index_subject].u = string_copy(US"On vacation");
}
@@
-1553,7
+1556,7
@@
switch (c->type)
break;
case cond_contains:
break;
case cond_contains:
- yield = strstric(exp[0], exp[1], FALSE) != NULL;
+ yield = strstric
_c
(exp[0], exp[1], FALSE) != NULL;
break;
case cond_CONTAINS:
break;
case cond_CONTAINS:
@@
-1892,7
+1895,7
@@
while (commands)
if (expand_nmax >= 0 || filter_thisaddress != NULL)
{
int ecount = expand_nmax >= 0 ? expand_nmax : -1;
if (expand_nmax >= 0 || filter_thisaddress != NULL)
{
int ecount = expand_nmax >= 0 ? expand_nmax : -1;
- uschar **
ss = store_get(sizeof(uschar *) * (ecount + 3), FALSE
);
+ uschar **
ss = store_get(sizeof(uschar *) * (ecount + 3), GET_UNTAINTED
);
addr->pipe_expandn = ss;
if (!filter_thisaddress) filter_thisaddress = US"";
addr->pipe_expandn = ss;
if (!filter_thisaddress) filter_thisaddress = US"";
@@
-2304,7
+2307,7
@@
while (commands)
addr->next = *generated;
*generated = addr;
addr->next = *generated;
*generated = addr;
- addr->reply = store_get(sizeof(reply_item),
FALSE
);
+ addr->reply = store_get(sizeof(reply_item),
GET_UNTAINTED
);
addr->reply->from = NULL;
addr->reply->to = string_copy(to);
addr->reply->file_expand =
addr->reply->from = NULL;
addr->reply->to = string_copy(to);
addr->reply->file_expand =