Fix for CVE-2014-0224
[openssl.git] / ssl / heartbeat_test.c
index 049c1de1b346132e19e51ea7d8ad2d007b137af6..eddadbe695a6b6f33b34bf7ceb67f73ea6bcee6c 100644 (file)
@@ -44,6 +44,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#if !defined(OPENSSL_NO_HEARTBEATS) && !defined(OPENSSL_SYS_WINDOWS)
+
 /* As per https://tools.ietf.org/html/rfc6520#section-4 */
 #define MIN_PADDING_SIZE       16
 
@@ -236,7 +238,7 @@ static int execute_heartbeat(HEARTBEAT_TEST_FIXTURE fixture)
                }
        else
                {
-               char* actual_payload = strndup((const char*)p, actual_payload_len);
+               char* actual_payload = BUF_strndup((const char*)p, actual_payload_len);
                if (strcmp(actual_payload, fixture.expected_return_payload) != 0)
                        {
                        printf("%s failed:\n  expected payload: \"%s\"\n  received: \"%s\"\n",
@@ -244,7 +246,7 @@ static int execute_heartbeat(HEARTBEAT_TEST_FIXTURE fixture)
                                                 actual_payload);
                        result = 1;
                        }
-               free(actual_payload);
+               OPENSSL_free(actual_payload);
                }
 
        if (result != 0)
@@ -453,3 +455,11 @@ int main(int argc, char *argv[])
                }
        return EXIT_SUCCESS;
        }
+
+#else /* OPENSSL_NO_HEARTBEATS*/
+
+int main(int argc, char *argv[])
+       {
+               return EXIT_SUCCESS;
+       }
+#endif /* OPENSSL_NO_HEARTBEATS */