From 99633b9908b388c3934de0456ccbb900c6d89441 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Thu, 29 Oct 2015 14:27:46 +0800 Subject: [PATCH] fix #441 --- src/encrypt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/encrypt.c b/src/encrypt.c index d214cafa..daf1f970 100644 --- a/src/encrypt.c +++ b/src/encrypt.c @@ -1229,12 +1229,17 @@ char * ss_encrypt(int buf_size, char *plaintext, ssize_t *len, char * ss_decrypt_all(int buf_size, char *ciphertext, ssize_t *len, int method, int auth) { if (method > TABLE) { - cipher_ctx_t evp; - cipher_context_init(&evp, method, 0); size_t iv_len = enc_iv_len; size_t c_len = *len, p_len = *len - iv_len; int ret = 1; + if (*len < iv_len) { + return NULL; + } + + cipher_ctx_t evp; + cipher_context_init(&evp, method, 0); + static int tmp_len = 0; static char *tmp_buf = NULL; int buf_len = max(p_len, buf_size);