aboutsummaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in19
1 files changed, 16 insertions, 3 deletions
diff --git a/configure.in b/configure.in
index a2a7c594eb..c0b2d62f20 100644
--- a/configure.in
+++ b/configure.in
@@ -769,12 +769,25 @@ when(darwin*) RUBY_PREPEND_OPTION(LIBS, -lobjc)
#include <stdio.h>
#include <unistd.h>
#include <string.h>
+
int
main()
{
- char buf[256];
- strcpy(buf, crypt("", "\xE0\xA0"));
- return strcmp(buf, crypt("", "\xE0\xA0"));
+ int i;
+ for (i = 0; i < 128*128; i++) {
+ char salt[2], buf[256], *s;
+ salt[0] = 0x80 | (i & 0x7f);
+ salt[1] = 0x80 | (i >> 7);
+ strcpy(buf, crypt("", salt));
+ if (strcmp(buf, s = crypt("", salt))) {
+#if 0
+ printf("%.2x%.2x: %s -> %s\n", (unsigned char)salt[0], (unsigned char)salt[1],
+ buf+2, s+2);
+#endif
+ return 1;
+ }
+ }
+ return 0;
}
],
rb_cv_broken_crypt=no,