X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fsrs.c;h=1ff391f65ee665cf261ea52a14421312e9b97cfc;hb=aded22555eeb31bc032f9bc58a83762981a58391;hp=e534943b39198e830c089d2579a81b17973183a3;hpb=892a2814d206db660df9cc195ddff899ee4598d9;p=exim.git diff --git a/src/src/srs.c b/src/src/srs.c index e534943b3..1ff391f65 100644 --- a/src/src/srs.c +++ b/src/src/srs.c @@ -1,11 +1,10 @@ -/* $Cambridge: exim/src/src/srs.c,v 1.7 2005/05/25 17:50:33 tom Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ /* SRS - Sender rewriting scheme support (C)2004 Miles Wilton + Copyright (c) The Exim Maintainers 2016 SRS Support Version: 1.0a @@ -27,9 +26,9 @@ uschar *srs_db_reverse = NULL; int eximsrs_init() { - uschar *list = srs_config; + const uschar *list = srs_config; uschar secret_buf[SRS_MAX_SECRET_LENGTH]; - uschar *secret; + uschar *secret = NULL; uschar sbuf[4]; uschar *sbufp; @@ -71,7 +70,7 @@ int eximsrs_init() /* First secret specified in secrets? */ co = 0; list = srs_secrets; - if(secret == NULL || *secret == NULL) + if(secret == NULL || *secret == '\0') { if((secret = string_nextinlist(&list, &co, secret_buf, SRS_MAX_SECRET_LENGTH)) == NULL) { @@ -107,7 +106,7 @@ int eximsrs_init() /* Extra secrets? */ while((secret = string_nextinlist(&list, &co, secret_buf, SRS_MAX_SECRET_LENGTH)) != NULL) - srs_add_secret(srs, secret, strnlen(secret, SRS_MAX_SECRET_LENGTH)); + srs_add_secret(srs, secret, (Ustrlen(secret) > SRS_MAX_SECRET_LENGTH) ? SRS_MAX_SECRET_LENGTH : Ustrlen(secret)); DEBUG(D_any) debug_printf("SRS initialized\n");