dovecot: base64_decode(): Update src_pos_r even if we return -1.
dovecot at dovecot.org
dovecot at dovecot.org
Tue Nov 6 23:51:00 EET 2007
details: http://hg.dovecot.org/dovecot/rev/cfdf3b2e3dd3
changeset: 6713:cfdf3b2e3dd3
user: Timo Sirainen <tss at iki.fi>
date: Tue Nov 06 23:50:57 2007 +0200
description:
base64_decode(): Update src_pos_r even if we return -1.
diffstat:
1 file changed, 15 insertions(+), 7 deletions(-)
src/lib/base64.c | 22 +++++++++++++++-------
diffs (46 lines):
diff -r ebe275c91ba4 -r cfdf3b2e3dd3 src/lib/base64.c
--- a/src/lib/base64.c Tue Nov 06 23:37:18 2007 +0200
+++ b/src/lib/base64.c Tue Nov 06 23:50:57 2007 +0200
@@ -97,18 +97,24 @@ int base64_decode(const void *src, size_
src_pos++;
continue;
}
- return -1;
+ ret = -1;
+ break;
}
input[1] = b64dec[src_c[src_pos+1]];
- if (input[1] == 0xff)
- return -1;
+ if (input[1] == 0xff) {
+ ret = -1;
+ break;
+ }
output[0] = (input[0] << 2) | (input[1] >> 4);
input[2] = b64dec[src_c[src_pos+2]];
if (input[2] == 0xff) {
- if (src_c[src_pos+2] != '=' || src_c[src_pos+3] != '=')
- return -1;
+ if (src_c[src_pos+2] != '=' ||
+ src_c[src_pos+3] != '=') {
+ ret = -1;
+ break;
+ }
buffer_append(dest, output, 1);
ret = 0;
src_pos += 4;
@@ -118,8 +124,10 @@ int base64_decode(const void *src, size_
output[1] = (input[1] << 4) | (input[2] >> 2);
input[3] = b64dec[src_c[src_pos+3]];
if (input[3] == 0xff) {
- if (src_c[src_pos+3] != '=')
- return -1;
+ if (src_c[src_pos+3] != '=') {
+ ret = -1;
+ break;
+ }
buffer_append(dest, output, 2);
ret = 0;
src_pos += 4;
More information about the dovecot-cvs
mailing list