diff options
Diffstat (limited to 'src/base64.c')
| -rw-r--r-- | src/base64.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/base64.c b/src/base64.c index ba8acca..ee02356 100644 --- a/src/base64.c +++ b/src/base64.c | |||
| @@ -101,13 +101,13 @@ unsigned char *base64decode(const char *buf, size_t *size) | |||
| 101 | w3 = tmpval[2]; | 101 | w3 = tmpval[2]; |
| 102 | w4 = tmpval[3]; | 102 | w4 = tmpval[3]; |
| 103 | 103 | ||
| 104 | if (w2 >= 0) { | 104 | if (w1 >= 0 && w2 >= 0) { |
| 105 | outbuf[p++] = (unsigned char)(((w1 << 2) + (w2 >> 4)) & 0xFF); | 105 | outbuf[p++] = (unsigned char)(((w1 << 2) + (w2 >> 4)) & 0xFF); |
| 106 | } | 106 | } |
| 107 | if (w3 >= 0) { | 107 | if (w2 >= 0 && w3 >= 0) { |
| 108 | outbuf[p++] = (unsigned char)(((w2 << 4) + (w3 >> 2)) & 0xFF); | 108 | outbuf[p++] = (unsigned char)(((w2 << 4) + (w3 >> 2)) & 0xFF); |
| 109 | } | 109 | } |
| 110 | if (w4 >= 0) { | 110 | if (w3 >= 0 && w4 >= 0) { |
| 111 | outbuf[p++] = (unsigned char)(((w3 << 6) + w4) & 0xFF); | 111 | outbuf[p++] = (unsigned char)(((w3 << 6) + w4) & 0xFF); |
| 112 | } | 112 | } |
| 113 | } | 113 | } |
