else if ((c >= 'a') && (c <= 'f'))
return (c - 'a' + 10);
else
- return c;
+ return 16; /* invalid hex character */
}
static int qp_char(unsigned char c1, unsigned char c2, unsigned char *c_out)
/* Note: Decoding is done "in-situ", i.e. without using an
* additional buffer for temp. storage. This is possible, since the
* decoded string will always be shorter than the encoded string,
- * due to the en- coding scheme.
+ * due to the encoding scheme.
*/
int state = S_COPY_PLAIN;
int decoded_count;
delimsave = *p; *p = '\r';
- decoded_count = from64tobits(p_out, p_in);
+ decoded_count = from64tobits(p_out, p_in, 0);
*p = delimsave;
if (decoded_count > 0)
p_out += decoded_count;