]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-esp.c
Force -t on in TESTonce.
[tcpdump] / print-esp.c
index 8339a5678a43bcf2c595618416d7b0c4d8dbf1ce..375075a3e53419c9ba3a927deff56c01048ef0b9 100644 (file)
@@ -21,6 +21,8 @@
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+/* \summary: IPSEC Encapsulating Security Payload (ESP) printer */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -128,7 +130,7 @@ EVP_CIPHER_CTX_new(void)
 {
        EVP_CIPHER_CTX *ctx;
 
-       ctx = malloc(sizeof (EVP_CIPHER_CTX));
+       ctx = malloc(sizeof(*ctx));
        if (ctx == NULL)
                return (NULL);
        memset(ctx, 0, sizeof(*ctx));
@@ -463,8 +465,9 @@ static void esp_print_decode_onesecret(netdissect_options *ndo, char *line,
 
                secretfile = fopen(filename, FOPEN_READ_TXT);
                if (secretfile == NULL) {
-                       perror(filename);
-                       exit(3);
+                       (*ndo->ndo_error)(ndo, "print_esp: can't open %s: %s\n",
+                           filename, strerror(errno));
+                       return;
                }
 
                while (fgets(fileline, sizeof(fileline)-1, secretfile) != NULL) {
@@ -529,8 +532,14 @@ static void esp_print_decode_onesecret(netdissect_options *ndo, char *line,
 USES_APPLE_DEPRECATED_API
 static void esp_init(netdissect_options *ndo _U_)
 {
-
+       /*
+        * 0.9.6 doesn't appear to define OPENSSL_API_COMPAT, so
+        * we check whether it's undefined or it's less than the
+        * value for 1.1.0.
+        */
+#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < 0x10100000L
        OpenSSL_add_all_algorithms();
+#endif
        EVP_add_cipher_alias(SN_des_ede3_cbc, "3des");
 }
 USES_APPLE_RST