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
tidying: coverity fixes
[exim.git]
/
src
/
src
/
transports
/
appendfile.c
diff --git
a/src/src/transports/appendfile.c
b/src/src/transports/appendfile.c
index 5dc4ee9b5df4150fb5de5372af49fc644fb4d654..da5d8aa0a8670127264e062a078f4863c264969f 100644
(file)
--- a/
src/src/transports/appendfile.c
+++ b/
src/src/transports/appendfile.c
@@
-619,19
+619,18
@@
if (host_find_byname(&host, NULL, 0, NULL, FALSE) == HOST_FIND_FAILED)
host.address = US"127.0.0.1";
host.address = US"127.0.0.1";
-for (h = &host; h
!= NULL
; h = h->next)
+for (h = &host; h; h = h->next)
{
int sock, rc;
{
int sock, rc;
- int host_af =
(Ustrchr(h->address, ':') != NULL)
? AF_INET6 : AF_INET;
+ int host_af =
Ustrchr(h->address, ':') != NULL
? AF_INET6 : AF_INET;
DEBUG(D_transport) debug_printf("calling comsat on %s\n", h->address);
DEBUG(D_transport) debug_printf("calling comsat on %s\n", h->address);
- sock = ip_socket(SOCK_DGRAM, host_af);
- if (sock < 0) continue;
+ if ((sock = ip_socket(SOCK_DGRAM, host_af)) < 0) continue;
/* Connect never fails for a UDP socket, so don't set a timeout. */
/* Connect never fails for a UDP socket, so don't set a timeout. */
- (void)ip_connect(sock, host_af, h->address, ntohs(sp->s_port), 0);
+ (void)ip_connect(sock, host_af, h->address, ntohs(sp->s_port), 0
, FALSE
);
rc = send(sock, buffer, Ustrlen(buffer) + 1, 0);
(void)close(sock);
rc = send(sock, buffer, Ustrlen(buffer) + 1, 0);
(void)close(sock);
@@
-917,6
+916,9
@@
copy_mbx_message(int to_fd, int from_fd, off_t saved_size)
int used;
off_t size;
struct stat statbuf;
int used;
off_t size;
struct stat statbuf;
+transport_ctx tctx = {0};
+
+tctx.u.fd = to_fd;
/* If the current mailbox size is zero, write a header block */
/* If the current mailbox size is zero, write a header block */
@@
-929,7
+931,7
@@
if (saved_size == 0)
(long int)time(NULL));
for (i = 0; i < MBX_NUSERFLAGS; i++)
sprintf (CS(s += Ustrlen(s)), "\015\012");
(long int)time(NULL));
for (i = 0; i < MBX_NUSERFLAGS; i++)
sprintf (CS(s += Ustrlen(s)), "\015\012");
- if (!transport_write_block (
to_fd, deliver_out_buffer, MBX_HDRSIZ
E))
+ if (!transport_write_block (
&tctx, deliver_out_buffer, MBX_HDRSIZE, FALS
E))
return DEFER;
}
return DEFER;
}
@@
-947,7
+949,7
@@
used = Ustrlen(deliver_out_buffer);
/* Rewind the temporary file, and copy it over in chunks. */
/* Rewind the temporary file, and copy it over in chunks. */
-
lseek(from_fd, 0 , SEEK_SET)
;
+
if (lseek(from_fd, 0 , SEEK_SET) < 0) return DEFER
;
while (size > 0)
{
while (size > 0)
{
@@
-958,7
+960,7
@@
while (size > 0)
if (len == 0) errno = ERRNO_MBXLENGTH;
return DEFER;
}
if (len == 0) errno = ERRNO_MBXLENGTH;
return DEFER;
}
- if (!transport_write_block(
to_fd, deliver_out_buffer, used + len
))
+ if (!transport_write_block(
&tctx, deliver_out_buffer, used + len, FALSE
))
return DEFER;
size -= len;
used = 0;
return DEFER;
size -= len;
used = 0;
@@
-1147,7
+1149,7
@@
directory name) is given, that is, when appending to a single file:
Open with O_WRONLY + O_EXCL + O_CREAT with configured mode, unless we know
this is via a symbolic link (only possible if allow_symlinks is set), in
Open with O_WRONLY + O_EXCL + O_CREAT with configured mode, unless we know
this is via a symbolic link (only possible if allow_symlinks is set), in
- which case don't use O_EXCL, as it dosn't work.
+ which case don't use O_EXCL, as it do
e
sn't work.
If open fails because the file already exists, go to (6f). To avoid
looping for ever in a situation where the file is continuously being
If open fails because the file already exists, go to (6f). To avoid
looping for ever in a situation where the file is continuously being
@@
-2874,9
+2876,15
@@
at initialization time. */
if (yield == OK)
{
if (yield == OK)
{
- if (!transport_write_message(addr, fd, ob->options, 0, tblock->add_headers,
- tblock->remove_headers, ob->check_string, ob->escape_string,
- tblock->rewrite_rules, tblock->rewrite_existflags))
+ transport_ctx tctx = {
+ fd,
+ tblock,
+ addr,
+ ob->check_string,
+ ob->escape_string,
+ ob->options
+ };
+ if (!transport_write_message(&tctx, 0))
yield = DEFER;
}
yield = DEFER;
}
@@
-3124,7
+3132,7
@@
if (yield != OK)
fcntl() call (BSDI & FreeBSD do not). */
if (!isdirectory && ftruncate(fd, saved_size))
fcntl() call (BSDI & FreeBSD do not). */
if (!isdirectory && ftruncate(fd, saved_size))
- DEBUG(D_transport) debug_printf("Error restting file size\n");
+ DEBUG(D_transport) debug_printf("Error res
e
tting file size\n");
}
/* Handle successful writing - we want the modification time to be now for
}
/* Handle successful writing - we want the modification time to be now for