From: Kurt Zeilenga Date: Fri, 6 Nov 1998 00:17:34 +0000 (+0000) Subject: Insert base64 padding fix from -devel. X-Git-Tag: OPENLDAP_REL_ENG_1_0_3~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2f42e9e6b7b1efb379926401039a7082e4c6e35;p=thirdparty%2Fopenldap.git Insert base64 padding fix from -devel. --- diff --git a/libraries/libldif/line64.c b/libraries/libldif/line64.c index 54832f21a7..b16ab5846b 100644 --- a/libraries/libldif/line64.c +++ b/libraries/libldif/line64.c @@ -183,7 +183,7 @@ str_getline( char **next ) *(*next)++ = '\0'; break; } - *(*next)++; + (*next)++; } return( l ); @@ -211,7 +211,7 @@ put_type_and_value( char **out, char *t, char *val, int vlen ) 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; @@ -272,12 +272,12 @@ put_type_and_value( char **out, char *t, char *val, int vlen ) 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)++ = '='; + } } } }