Check for SSL_write(3) error.
authorcheloha <cheloha@openbsd.org>
Tue, 28 Aug 2018 02:14:22 +0000 (02:14 +0000)
committercheloha <cheloha@openbsd.org>
Tue, 28 Aug 2018 02:14:22 +0000 (02:14 +0000)
jsing@ notes that this is not a complete solution, as we don't
account for retries or partial writes, but that this is a step
in a right direction.

May want to revisit this later to provide a complete solution.

ok jsing@

usr.bin/openssl/s_time.c

index 906d362..91a6855 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: s_time.c,v 1.29 2018/08/22 20:36:24 cheloha Exp $ */
+/* $OpenBSD: s_time.c,v 1.30 2018/08/28 02:14:22 cheloha Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -376,11 +376,12 @@ run_test(SSL *scon)
        if (s_time_config.www_path != NULL) {
                retval = snprintf(buf, sizeof buf,
                    "GET %s HTTP/1.0\r\n\r\n", s_time_config.www_path);
-               if ((size_t)retval >= sizeof buf) {
+               if (retval == -1 || retval >= sizeof buf) {
                        fprintf(stderr, "URL too long\n");
                        return 0;
                }
-               SSL_write(scon, buf, strlen(buf));
+               if (SSL_write(scon, buf, retval) != retval)
+                       return 0;
                while ((i = SSL_read(scon, buf, sizeof(buf))) > 0)
                        bytes_read += i;
        }