diff --git a/print-esp.c b/print-esp.c index 6fabff1..5818cc8 100644 --- a/print-esp.c +++ b/print-esp.c @@ -242,6 +242,7 @@ int esp_print_decrypt_buffer_by_ikev2(netdissect_options *ndo, if (input_buffer == NULL) { EVP_CIPHER_CTX_free(ctx); (*ndo->ndo_error)(ndo, "can't allocate memory for encrypted data buffer"); + return 0; } /* * Copy the input data to the encrypted data buffer, and pad it @@ -259,7 +260,7 @@ int esp_print_decrypt_buffer_by_ikev2(netdissect_options *ndo, EVP_CIPHER_CTX_free(ctx); (*ndo->ndo_error)(ndo, "can't allocate memory for decryption buffer"); } - EVP_Cipher(ctx, output_buffer, input_buffer, len); + EVP_Cipher(ctx, output_buffer, input_buffer, buffer_size); EVP_CIPHER_CTX_free(ctx); /* @@ -815,6 +816,7 @@ esp_print(netdissect_options *ndo, if (input_buffer == NULL) { EVP_CIPHER_CTX_free(ctx); (*ndo->ndo_error)(ndo, "can't allocate memory for encrypted data buffer"); + return 0; } /* * Copy the input data to the encrypted data buffer,