s_client starttls: fix handling of multiline reply
authorDan Campbell <dan@ws0w.com>
Thu, 4 Apr 2019 21:15:33 +0000 (15:15 -0600)
committerPauli <paul.dale@oracle.com>
Mon, 8 Apr 2019 01:02:40 +0000 (11:02 +1000)
Fixes #8645

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8654)

apps/s_client.c

index bb4f0aa..282d137 100644 (file)
@@ -2277,7 +2277,7 @@ int s_client_main(int argc, char **argv)
             do {
                 mbuf_len = BIO_gets(fbio, mbuf, BUFSIZZ);
             }
-            while (mbuf_len > 3 && mbuf[3] == '-');
+            while (mbuf_len > 3 && (!isdigit(mbuf[0]) || !isdigit(mbuf[1]) || !isdigit(mbuf[2]) || mbuf[3] != ' '));
             (void)BIO_flush(fbio);
             BIO_pop(fbio);
             BIO_free(fbio);