svn commit: samba r9671 - in branches/SAMBA_4_0/source/lib/ldb/common: .

tridge at samba.org tridge at samba.org
Sat Aug 27 01:42:21 GMT 2005


Author: tridge
Date: 2005-08-27 01:42:20 +0000 (Sat, 27 Aug 2005)
New Revision: 9671

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9671

Log:
patch from Kai Blin fixing a bug in our base64 encoder

Modified:
   branches/SAMBA_4_0/source/lib/ldb/common/ldb_ldif.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_ldif.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb_ldif.c	2005-08-27 00:30:11 UTC (rev 9670)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb_ldif.c	2005-08-27 01:42:20 UTC (rev 9671)
@@ -155,10 +155,10 @@
 	const char *b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 	int bit_offset, byte_offset, idx, i;
 	const uint8_t *d = (const uint8_t *)buf;
-	int bytes = (len*8 + 5)/6;
+	int bytes = (len*8 + 5)/6, pad_bytes = (bytes % 4) ? 4 - (bytes % 4) : 0;
 	char *out;
 
-	out = talloc_array(mem_ctx, char, bytes+2);
+	out = talloc_array(mem_ctx, char, bytes+pad_bytes+1);
 	if (!out) return NULL;
 
 	for (i=0;i<bytes;i++) {
@@ -175,7 +175,8 @@
 		out[i] = b64[idx];
 	}
 
-	out[i++] = '=';
+	for (;i<bytes+pad_bytes;i++)
+		out[i] = '=';
 	out[i] = 0;
 
 	return out;



More information about the samba-cvs mailing list