From 8beaf79684f76c61f1ee1dca26e0822ec9910aee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sat, 13 Apr 1996 04:22:09 +0200
Subject: [PATCH] crypt fixed for BSD

Rev: src/builtin_efuns.c:1.15
---
 src/builtin_efuns.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/builtin_efuns.c b/src/builtin_efuns.c
index 54bd074c07..1a94033b2e 100644
--- a/src/builtin_efuns.c
+++ b/src/builtin_efuns.c
@@ -701,7 +701,7 @@ void f_time(INT32 args)
 void f_crypt(INT32 args)
 {
   char salt[2];
-  char *ret;
+  char *ret, *saltp;
   char *choise =
     "cbhisjKlm4k65p7qrJfLMNQOPxwzyAaBDFgnoWXYCZ0123tvdHueEGISRTUV89./";
 
@@ -718,17 +718,17 @@ void f_crypt(INT32 args)
        sp[1-args].u.string->len < 2)
       error("Bad argument 2 to crypt()\n");
       
-    salt[0] = sp[1-args].u.string->str[0];
-    salt[1] = sp[1-args].u.string->str[1];
+    saltp=sp[1-args].u.string->str;
   } else {
     salt[0] = choise[my_rand()%strlen(choise)];
     salt[1] = choise[my_rand()%strlen(choise)];
+    saltp=salt;
   }
 #ifdef HAVE_CRYPT
-  ret = (char *)crypt(sp[-args].u.string->str, salt);
+  ret = (char *)crypt(sp[-args].u.string->str, saltp);
 #else
 #ifdef HAVE__CRYPT
-  ret = (char *)_crypt(sp[-args].u.string->str, salt);
+  ret = (char *)_crypt(sp[-args].u.string->str, saltp);
 #else
   ret = sp[-args].u.string->str;
 #endif
-- 
GitLab