postfix/pointer_to_literals.patch
Michael Ströder 505c9a6190 Accepting request 896790 from home:darix:playground
This is work in progress:

Do not accept yet

How do we plan to handle the section from the RELEASE_NOTES about the internal process updates?

https://de.postfix.org/ftpmirror/official/postfix-3.6.0.RELEASE_NOTES

do we just hope that the restart will be fast enough?

OBS-URL: https://build.opensuse.org/request/show/896790
OBS-URL: https://build.opensuse.org/package/show/server:mail/postfix?expand=0&rev=413
2021-06-02 10:12:35 +00:00

60 lines
2.5 KiB
Diff

Index: src/cleanup/cleanup_message.c
===================================================================
--- src/cleanup/cleanup_message.c.orig
+++ src/cleanup/cleanup_message.c
@@ -299,7 +299,7 @@ static const char *cleanup_act(CLEANUP_S
while (*optional_text && ISSPACE(*optional_text))
optional_text++;
-#define STREQUAL(x,y,l) (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0)
+inline int STREQUAL(const char *x, const char *y, size_t l) { return (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0); }
#define CLEANUP_ACT_DROP 0
/*
Index: src/local/local_expand.c
===================================================================
--- src/local/local_expand.c.orig
+++ src/local/local_expand.c
@@ -115,7 +115,7 @@ static const char *local_expand_lookup(c
LOCAL_EXP *local = (LOCAL_EXP *) ptr;
static char rcpt_delim[2];
-#define STREQ(x,y) (*(x) == *(y) && strcmp((x), (y)) == 0)
+inline int STREQ(const char *x, const char *y) { return (*(x) == *(y) && strcmp((x), (y)) == 0); }
if (STREQ(name, "user")) {
return (local->state->msg_attr.user);
Index: src/smtpd/smtpd_check.c
===================================================================
--- src/smtpd/smtpd_check.c.orig
+++ src/smtpd/smtpd_check.c
@@ -383,6 +383,10 @@ static STRING_LIST *smtpd_acl_perm_log;
#define CONST_STR(x) ((const char *) vstring_str(x))
#define UPDATE_STRING(ptr,val) { if (ptr) myfree(ptr); ptr = mystrdup(val); }
+inline int STREQ(const char *x, const char *y) { return (*(x) == *(y) && strcmp((x), (y)) == 0); }
+inline int STREQUAL(const char *x, const char *y, size_t l) { return (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0); }
+inline int STREQN(const char *x, const char *y, size_t n) { return (*(x) == *(y) && strncmp((x), (y), (n)) == 0); }
+
/*
* If some decision can't be made due to a temporary error, then change
* other decisions into deferrals.
@@ -2394,8 +2398,6 @@ static int check_table_result(SMTPD_STAT
if (msg_verbose)
msg_info("%s: %s %s %s", myname, table, value, datum);
-#define STREQUAL(x,y,l) (strncasecmp((x), (y), (l)) == 0 && (y)[l] == 0)
-
/*
* DUNNO means skip this table. Silently ignore optional text.
*/
@@ -3482,8 +3484,6 @@ static const char *rbl_expand_lookup(con
SMTPD_RBL_EXPAND_CONTEXT *rbl_exp = (SMTPD_RBL_EXPAND_CONTEXT *) context;
SMTPD_STATE *state = rbl_exp->state;
-#define STREQ(x,y) (*(x) == *(y) && strcmp((x), (y)) == 0)
-
if (state->expand_buf == 0)
state->expand_buf = vstring_alloc(10);