From: cheloha Date: Tue, 28 Aug 2018 02:14:22 +0000 (+0000) Subject: Check for SSL_write(3) error. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=5f8f2a30424175f3bc828c956af6c79df1eb660a;p=openbsd Check for SSL_write(3) error. 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@ --- diff --git a/usr.bin/openssl/s_time.c b/usr.bin/openssl/s_time.c index 906d36228fe..91a6855d886 100644 --- a/usr.bin/openssl/s_time.c +++ b/usr.bin/openssl/s_time.c @@ -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; }