summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/johntheripper/files/johntheripper-1.7.9-jumbo-5-NT-performance-02.patch')
-rw-r--r--app-crypt/johntheripper/files/johntheripper-1.7.9-jumbo-5-NT-performance-02.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/app-crypt/johntheripper/files/johntheripper-1.7.9-jumbo-5-NT-performance-02.patch b/app-crypt/johntheripper/files/johntheripper-1.7.9-jumbo-5-NT-performance-02.patch
new file mode 100644
index 000000000000..6066cb8f314e
--- /dev/null
+++ b/app-crypt/johntheripper/files/johntheripper-1.7.9-jumbo-5-NT-performance-02.patch
@@ -0,0 +1,31 @@
+diff --git a/src/NT_fmt_plug.c b/src/NT_fmt_plug.c
+index eb52e3d..411a45b 100644
+--- a/src/NT_fmt_plug.c
++++ b/src/NT_fmt_plug.c
+@@ -652,7 +652,7 @@ static inline void set_key_helper(unsigned int * keybuffer,
+ for(; key[md4_size]; i += xBuf, md4_size++)
+ {
+ unsigned int temp;
+- if ((temp = key[++md4_size]))
++ if ((temp = key[++md4_size]) && md4_size < PLAINTEXT_LENGTH)
+ {
+ keybuffer[i] = key[md4_size-1] | (temp << 16);
+ }
+@@ -704,7 +704,7 @@ static inline void set_key_helper_utf8(unsigned int * keybuffer, unsigned int xB
+ const UTF8 * source, unsigned int lenStoreOffset, unsigned int *lastlen)
+ {
+ unsigned int *target = keybuffer;
+- unsigned int *targetEnd = &keybuffer[xBuf * ((PLAINTEXT_LENGTH + 1) >> 1)];
++ unsigned int *targetEnd = &keybuffer[xBuf * (PLAINTEXT_LENGTH >> 1)];
+ UTF32 chl, chh = 0x80;
+ unsigned int outlen = 0;
+
+@@ -844,7 +844,7 @@ static inline void set_key_helper_encoding(unsigned int * keybuffer,
+ i = 0;
+ for(md4_size = 0; key[md4_size]; i += xBuf, md4_size++)
+ {
+- if ((temp = CP_to_Unicode[key[++md4_size]]))
++ if ((temp = CP_to_Unicode[key[++md4_size]]) && md4_size < PLAINTEXT_LENGTH)
+ keybuffer[i] = CP_to_Unicode[key[md4_size-1]] | (temp << 16);
+ else {
+ keybuffer[i] = CP_to_Unicode[key[md4_size-1]] | 0x800000;