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
taint enforce: file access backstops
[exim.git]
/
src
/
exim_monitor
/
em_queue.c
diff --git
a/src/exim_monitor/em_queue.c
b/src/exim_monitor/em_queue.c
index cb284eb4827d0a73839d1c0d084f5d346b31dc1d..d4c01a628c70dcd75c5f93e3be95cfc641a863c6 100644
(file)
--- a/
src/exim_monitor/em_queue.c
+++ b/
src/exim_monitor/em_queue.c
@@
-2,7
+2,7
@@
* Exim Monitor *
*************************************************/
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 20
09
*/
+/* Copyright (c) University of Cambridge 1995 - 20
18
*/
/* See the file NOTICE for conditions of use and distribution. */
/* See the file NOTICE for conditions of use and distribution. */
@@
-138,7
+138,7
@@
acl_var_create(uschar *name)
{
tree_node *node, **root;
root = (name[0] == 'c')? &acl_var_c : &acl_var_m;
{
tree_node *node, **root;
root = (name[0] == 'c')? &acl_var_c : &acl_var_m;
-node = store_get(sizeof(tree_node) + Ustrlen(name));
+node = store_get(sizeof(tree_node) + Ustrlen(name)
, FALSE
);
Ustrcpy(node->name, name);
node->data.ptr = NULL;
(void)tree_insertnode(root, node);
Ustrcpy(node->name, name);
node->data.ptr = NULL;
(void)tree_insertnode(root, node);
@@
-156,7
+156,7
@@
set_up(uschar *name, int dir_char)
{
int i, rc, save_errno;
struct stat statdata;
{
int i, rc, save_errno;
struct stat statdata;
-
void *
reset_point;
+
rmark
reset_point;
uschar *p;
queue_item *q = (queue_item *)store_malloc(sizeof(queue_item));
uschar buffer[256];
uschar *p;
queue_item *q = (queue_item *)store_malloc(sizeof(queue_item));
uschar buffer[256];
@@
-182,7
+182,7
@@
Before reading the header remember the position in the dynamic store so that
we can recover the store into which the header is read. All data read by
spool_read_header that is to be preserved is copied into malloc store. */
we can recover the store into which the header is read. All data read by
spool_read_header that is to be preserved is copied into malloc store. */
-reset_point = store_
get(0
);
+reset_point = store_
mark(
);
message_size = 0;
message_subdir[0] = dir_char;
sprintf(CS buffer, "%s-H", name);
message_size = 0;
message_subdir[0] = dir_char;
sprintf(CS buffer, "%s-H", name);
@@
-204,7
+204,7
@@
if it's there. */
else
{
else
{
- q->update_time = q->input_time = received_time;
+ q->update_time = q->input_time = received_time
.tv_sec
;
if ((p = strstric(sender_address+1, qualify_domain, FALSE)) != NULL &&
*(--p) == '@') *p = 0;
}
if ((p = strstric(sender_address+1, qualify_domain, FALSE)) != NULL &&
*(--p) == '@') *p = 0;
}
@@
-222,11
+222,11
@@
if (rc != spool_read_OK)
struct stat statbuf;
sprintf(CS big_buffer, "%s/input/%s", spool_directory, buffer);
if (Ustat(big_buffer, &statbuf) == 0)
struct stat statbuf;
sprintf(CS big_buffer, "%s/input/%s", spool_directory, buffer);
if (Ustat(big_buffer, &statbuf) == 0)
- msg = string_sprintf("*** Format error in spool file: size =
%d
***",
+ msg = string_sprintf("*** Format error in spool file: size =
" OFF_T_FMT "
***",
statbuf.st_size);
statbuf.st_size);
- else msg =
string_sprintf("*** Format error in spool file ***")
;
+ else msg =
US"*** Format error in spool file ***"
;
}
}
- else msg =
string_sprintf("*** Cannot read spool file ***")
;
+ else msg =
US"*** Cannot read spool file ***"
;
if (rc == spool_read_hdrerror)
{
if (rc == spool_read_hdrerror)
{
@@
-234,7
+234,7
@@
if (rc != spool_read_OK)
}
else
{
}
else
{
- deliver_freeze = FALSE;
+
f.
deliver_freeze = FALSE;
sender_address = msg;
recipients_count = 0;
}
sender_address = msg;
recipients_count = 0;
}
@@
-242,9
+242,9
@@
if (rc != spool_read_OK)
/* Now set up the remaining data. */
/* Now set up the remaining data. */
-q->frozen = deliver_freeze;
+q->frozen =
f.
deliver_freeze;
-if (sender_set_untrusted)
+if (
f.
sender_set_untrusted)
{
if (sender_address[0] == 0)
{
{
if (sender_address[0] == 0)
{
@@
-614,7
+614,7
@@
static void update_recipients(queue_item *p)
{
int i;
FILE *jread;
{
int i;
FILE *jread;
-
void *
reset_point;
+
rmark
reset_point;
struct stat statdata;
uschar buffer[1024];
struct stat statdata;
uschar buffer[1024];
@@
-634,7
+634,7
@@
if (!(jread = fopen(CS buffer, "r")))
/* Get the contents of the header file; if any problem, just give up.
Arrange to recover the dynamic store afterwards. */
/* Get the contents of the header file; if any problem, just give up.
Arrange to recover the dynamic store afterwards. */
-reset_point = store_
get(0
);
+reset_point = store_
mark(
);
sprintf(CS buffer, "%s-H", p->name);
if (spool_read_header(buffer, FALSE, TRUE) != spool_read_OK)
{
sprintf(CS buffer, "%s-H", p->name);
if (spool_read_header(buffer, FALSE, TRUE) != spool_read_OK)
{