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
Cleanup (prevent repeated use of -p/-oMr to avoid mem leak)
[exim.git]
/
src
/
src
/
exim.c
diff --git
a/src/src/exim.c
b/src/src/exim.c
index 67583e5842a4a019801030389bcfcffbe0a909a7..88e119778cf66ec3ff830bcdcc0daaacc0397d3d 100644
(file)
--- a/
src/src/exim.c
+++ b/
src/src/exim.c
@@
-3106,7
+3106,14
@@
for (i = 1; i < argc; i++)
/* -oMr: Received protocol */
/* -oMr: Received protocol */
- else if (Ustrcmp(argrest, "Mr") == 0) received_protocol = argv[++i];
+ else if (Ustrcmp(argrest, "Mr") == 0)
+
+ if (received_protocol)
+ {
+ fprintf(stderr, "received_protocol is set already\n");
+ exit(EXIT_FAILURE);
+ }
+ else received_protocol = argv[++i];
/* -oMs: Set sender host name */
/* -oMs: Set sender host name */
@@
-3202,7
+3209,15
@@
for (i = 1; i < argc; i++)
if (*argrest != 0)
{
if (*argrest != 0)
{
- uschar *hn = Ustrchr(argrest, ':');
+ uschar *hn;
+
+ if (received_protocol)
+ {
+ fprintf(stderr, "received_protocol is set already\n");
+ exit(EXIT_FAILURE);
+ }
+
+ hn = Ustrchr(argrest, ':');
if (hn == NULL)
{
received_protocol = argrest;
if (hn == NULL)
{
received_protocol = argrest;