Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0
into mysql.com:/users/lthalmann/bk/mysql-5.0-base64
This commit is contained in:
commit
aa7dd94962
@ -27,9 +27,13 @@ static char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|||||||
int
|
int
|
||||||
base64_needed_encoded_length(int length_of_data)
|
base64_needed_encoded_length(int length_of_data)
|
||||||
{
|
{
|
||||||
return ceil(length_of_data * 4 / 3) /* base64 chars */ +
|
int nb_base64_chars;
|
||||||
ceil(length_of_data / (76 * 3 / 4)) /* Newlines */ +
|
nb_base64_chars= (length_of_data + 2) / 3 * 4;
|
||||||
3 /* Padding */;
|
|
||||||
|
return
|
||||||
|
nb_base64_chars + /* base64 char incl padding */
|
||||||
|
(nb_base64_chars - 1)/ 76 + /* newlines */
|
||||||
|
1; /* NUL termination of string */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -89,6 +93,7 @@ base64_encode(const void *src, size_t src_len, char *dst)
|
|||||||
else
|
else
|
||||||
*dst++= base64_table[(c >> 0) & 0x3f];
|
*dst++= base64_table[(c >> 0) & 0x3f];
|
||||||
}
|
}
|
||||||
|
*dst= '\0';
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -209,6 +214,7 @@ main(void)
|
|||||||
size_t j;
|
size_t j;
|
||||||
size_t k, l;
|
size_t k, l;
|
||||||
size_t dst_len;
|
size_t dst_len;
|
||||||
|
size_t needed_length;
|
||||||
|
|
||||||
for (i= 0; i < 500; i++)
|
for (i= 0; i < 500; i++)
|
||||||
{
|
{
|
||||||
@ -227,8 +233,12 @@ main(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Encode */
|
/* Encode */
|
||||||
str= (char *) malloc(base64_needed_encoded_length(src_len));
|
needed_length= base64_needed_encoded_length(src_len);
|
||||||
|
str= (char *) malloc(needed_length);
|
||||||
|
for (k= 0; k < needed_length; k++)
|
||||||
|
str[k]= 0xff; /* Fill memory to check correct NUL termination */
|
||||||
require(base64_encode(src, src_len, str) == 0);
|
require(base64_encode(src, src_len, str) == 0);
|
||||||
|
require(needed_length == strlen(str) + 1);
|
||||||
|
|
||||||
/* Decode */
|
/* Decode */
|
||||||
dst= (char *) malloc(base64_needed_decoded_length(strlen(str)));
|
dst= (char *) malloc(base64_needed_decoded_length(strlen(str)));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user