use BIO_nwrite() more properly to demonstrate the general idea of
authorBodo Möller <bodo@openssl.org>
Thu, 14 Mar 2002 09:48:54 +0000 (09:48 +0000)
committerBodo Möller <bodo@openssl.org>
Thu, 14 Mar 2002 09:48:54 +0000 (09:48 +0000)
BIO_nwrite0/BIO_nwrite (the previous code was OK for BIO pairs but not
in general)

ssl/ssltest.c

index 2ef9ae760159198be4b5b993039dc027a98a797e..f98202945ebf67a7a9eb4e4c24a0c6550d150e76 100644 (file)
@@ -1053,10 +1053,10 @@ int doit_biopair(SSL *s_ssl, SSL *c_ssl, long count,
                                        if (num > 1)
                                                --num; /* test restartability even more thoroughly */
                                        
-                                       r = BIO_nwrite(io1, &dataptr, (int)num);
+                                       r = BIO_nwrite0(io1, &dataptr);
                                        assert(r > 0);
-                                       assert(r <= (int)num);
-                                       num = r;
+                                       if (r < num)
+                                               num = r;
                                        r = BIO_read(io2, dataptr, (int)num);
                                        if (r != (int)num) /* can't happen */
                                                {
@@ -1065,6 +1065,13 @@ int doit_biopair(SSL *s_ssl, SSL *c_ssl, long count,
                                                goto err;
                                                }
                                        progress = 1;
+                                       r = BIO_nwrite(io1, &dataptr, (int)num);
+                                       if (r != (int)num) /* can't happen */
+                                               {
+                                               fprintf(stderr, "ERROR: BIO_nwrite() did not accept "
+                                                       "BIO_nwrite0() bytes");
+                                               goto err;
+                                               }
                                        
                                        if (debug)
                                                printf((io2 == client_io) ?