summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2002-09-17 23:46:53 +0300
committerunknown <monty@mashka.mysql.fi>2002-09-17 23:46:53 +0300
commitf0fbecca27b1a5b754636b9372b37454c28ec336 (patch)
treec51e7c970efa7653918302f4513422428385158d /mysys
parentddcc49ec62c271a4f022a673b39c8693ed4e7a86 (diff)
downloadmariadb-git-f0fbecca27b1a5b754636b9372b37454c28ec336.tar.gz
fixed so that --ssl and --skip-ssl works with the MySQL clients.
Fixed core dump bug when sending wrong string to AES_DECRYPT() BitKeeper/deleted/.del-explain_log.sh~e570be5f63576fe1: Delete: scripts/explain_log.sh Docs/manual.texi: Updated bug reporting. Added somew new changelog entries and changed some old client/mysql.cc: Fixed so that --ssl and --skip-ssl works client/mysqladmin.c: Fixed so that --ssl and --skip-ssl works client/mysqlcheck.c: Fixed so that --ssl and --skip-ssl works client/mysqldump.c: Fixed so that --ssl and --skip-ssl works client/mysqlimport.c: Fixed so that --ssl and --skip-ssl works client/mysqlshow.c: Fixed so that --ssl and --skip-ssl works include/sslopt-case.h: Fixed so that --ssl and --skip-ssl works mysql-test/r/func_str.result: Test of problem with AES_DECRYPT() mysql-test/t/func_str.test: Test of problem with AES_DECRYPT() mysys/my_aes.c: Fixed problem with wrong decrypt string. scripts/mysql_explain_log.sh: Applied missed patch sql/item_strfunc.cc: Fixed aes_encrypt() and aes_decrypt() to be safer and avoid some mallocs() sql/net_pkg.cc: Return ER_UNKNOWN_ERROR instead of errocode 0 in some cases.
Diffstat (limited to 'mysys')
-rw-r--r--mysys/my_aes.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mysys/my_aes.c b/mysys/my_aes.c
index 10ef62ae0a5..a3618e44b82 100644
--- a/mysys/my_aes.c
+++ b/mysys/my_aes.c
@@ -178,7 +178,7 @@ int my_aes_decrypt(const char *source, int source_length, char *dest,
char block[AES_BLOCK_SIZE]; /* 128 bit block used for padding */
int rc; /* Result codes */
int num_blocks; /* Number of complete blocks */
- char pad_len; /* Pad size for the last block */
+ uint pad_len; /* Pad size for the last block */
int i;
if ((rc=my_aes_create_key(&aes_key,AES_DECRYPT,key,key_length)))
@@ -197,7 +197,8 @@ int my_aes_decrypt(const char *source, int source_length, char *dest,
}
rijndaelDecrypt(aes_key.rk, aes_key.nr, source, block);
- pad_len = block[AES_BLOCK_SIZE-1]; /* Use last char in the block as size */
+ /* Use last char in the block as size */
+ pad_len = (uint) (uchar) block[AES_BLOCK_SIZE-1];
if (pad_len > AES_BLOCK_SIZE)
return AES_BAD_DATA;