- Require different input and output buffer in cipher_update()
- Fixed style typos
diff --git a/library/cipher.c b/library/cipher.c
index 345e2fe..697ff54 100644
--- a/library/cipher.c
+++ b/library/cipher.c
@@ -197,8 +197,11 @@
{
int copy_len = 0;
- if( NULL == ctx || NULL == ctx->cipher_info || NULL == olen )
+ if( NULL == ctx || NULL == ctx->cipher_info || NULL == olen ||
+ input == output )
+ {
return 1;
+ }
*olen = 0;
@@ -295,16 +298,16 @@
int i = 0;
unsigned char padding_len = 0;
- if ( NULL == input || NULL == data_len )
+ if( NULL == input || NULL == data_len )
return 1;
padding_len = input[input_len - 1];
- if ( padding_len > input_len )
+ if( padding_len > input_len )
return 2;
- for ( i = input_len - padding_len; i < input_len; i++ )
- if ( input[i] != padding_len )
+ for( i = input_len - padding_len; i < input_len; i++ )
+ if( input[i] != padding_len )
return 2;
*data_len = input_len - padding_len;