*(*next)++ = '\0';
break;
}
- *(*next)++;
+ (*next)++;
}
return( l );
b64 = 0;
stop = (unsigned char *) (val + vlen);
- if ( isascii( val[0] ) && isspace( val[0] ) || val[0] == ':' ) {
+ if ( isascii( val[0] ) && (isspace( val[0] ) || val[0] == ':') ) {
b64 = 1;
} else {
for ( byte = (unsigned char *) val; byte < stop;
len = 1;
}
- /* get b64 digit from low order 6 bits */
- *(*out)++ = nib2b64[ (bits & 0xfc0000L) >> 18 ];
- }
-
- for ( ; pad > 0; pad-- ) {
- *(*out - pad) = '=';
+ if( i + pad < 4 ) {
+ /* get b64 digit from low order 6 bits */
+ *(*out)++ = nib2b64[ (bits & 0xfc0000L) >> 18 ];
+ } else {
+ *(*out)++ = '=';
+ }
}
}
}