added some code
[NextIRCd.git] / src / crypt_base64.c
index 60e10eee7182f8b907aac0d09b00c4fe6b80a94f..b74a29b29e8fea57a06480cd380994970ca2067b 100644 (file)
@@ -74,10 +74,10 @@ unsigned char *crypt_base64_decode(const char *data, size_t input_length, size_t
        
        int i, j;
        for (i = 0, j = 0; i < input_length;) {
-               uint32_t sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
-               uint32_t sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
-               uint32_t sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
-               uint32_t sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
+               uint32_t sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]];
+               uint32_t sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]];
+               uint32_t sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]];
+               uint32_t sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]];
                
                uint32_t triple = (sextet_a << 3 * 6)
                + (sextet_b << 2 * 6)