Fix and document BIO_FLAGS_NONCLEAR_RST behavior on memory BIO
[openssl.git] / crypto / bio / bss_mem.c
index a7f2bfbae00e00f3acfbe0235d97a43e1a7a145f..19a3bd88ba71bc960b957bf16ccb741105c36809 100644 (file)
@@ -259,9 +259,7 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
         bm = bbm->buf;
         if (bm->data != NULL) {
             if (!(b->flags & BIO_FLAGS_MEM_RDONLY)) {
         bm = bbm->buf;
         if (bm->data != NULL) {
             if (!(b->flags & BIO_FLAGS_MEM_RDONLY)) {
-                if (b->flags & BIO_FLAGS_NONCLEAR_RST) {
-                    bm->length = bm->max;
-                } else {
+                if (!(b->flags & BIO_FLAGS_NONCLEAR_RST)) {
                     memset(bm->data, 0, bm->max);
                     bm->length = 0;
                 }
                     memset(bm->data, 0, bm->max);
                     bm->length = 0;
                 }