Testsuite: OpenSSL version output variances
[exim.git] / src / src / srs.c
index e534943b39198e830c089d2579a81b17973183a3..1ff391f65ee665cf261ea52a14421312e9b97cfc 100644 (file)
@@ -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 <miles@mirtol.com>
+  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");