public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/openssl] rebase_40beta: Drop patch merged into the upstream-sync patch
@ 2026-06-09 12:44 Tomas Mraz
0 siblings, 0 replies; only message in thread
From: Tomas Mraz @ 2026-06-09 12:44 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/openssl
Branch : rebase_40beta
Commit : f5bba4a2a3ffffae130376212ff8ccf48ee13974
Author : Tomas Mraz <tmraz@fedoraproject.org>
Date : 2019-05-03T11:16:08+02:00
Stats : +0/-325 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/openssl/c/f5bba4a2a3ffffae130376212ff8ccf48ee13974?branch=rebase_40beta
Log:
Drop patch merged into the upstream-sync patch
---
diff --git a/openssl-1.1.1-bio-mem-ptr.patch b/openssl-1.1.1-bio-mem-ptr.patch
deleted file mode 100644
index 4e131fc..0000000
--- a/openssl-1.1.1-bio-mem-ptr.patch
+++ /dev/null
@@ -1,325 +0,0 @@
-diff --git a/crypto/bio/bss_mem.c b/crypto/bio/bss_mem.c
-index 89c54b2d53..a7f2bfbae0 100644
---- a/crypto/bio/bss_mem.c
-+++ b/crypto/bio/bss_mem.c
-@@ -57,7 +57,12 @@ static const BIO_METHOD secmem_method = {
- NULL, /* mem_callback_ctrl */
- };
-
--/* BIO memory stores buffer and read pointer */
-+/*
-+ * BIO memory stores buffer and read pointer
-+ * however the roles are different for read only BIOs.
-+ * In that case the readp just stores the original state
-+ * to be used for reset.
-+ */
- typedef struct bio_buf_mem_st {
- struct buf_mem_st *buf; /* allocated buffer */
- struct buf_mem_st *readp; /* read pointer */
-@@ -192,11 +197,14 @@ static int mem_read(BIO *b, char *out, int outl)
- BIO_BUF_MEM *bbm = (BIO_BUF_MEM *)b->ptr;
- BUF_MEM *bm = bbm->readp;
-
-+ if (b->flags & BIO_FLAGS_MEM_RDONLY)
-+ bm = bbm->buf;
- BIO_clear_retry_flags(b);
- ret = (outl >= 0 && (size_t)outl > bm->length) ? (int)bm->length : outl;
- if ((out != NULL) && (ret > 0)) {
- memcpy(out, bm->data, ret);
- bm->length -= ret;
-+ bm->max -= ret;
- bm->data += ret;
- } else if (bm->length == 0) {
- ret = b->num;
-@@ -241,29 +249,36 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
- BIO_BUF_MEM *bbm = (BIO_BUF_MEM *)b->ptr;
- BUF_MEM *bm;
-
-+ if (b->flags & BIO_FLAGS_MEM_RDONLY)
-+ bm = bbm->buf;
-+ else
-+ bm = bbm->readp;
-+
- switch (cmd) {
- case BIO_CTRL_RESET:
- bm = bbm->buf;
- if (bm->data != NULL) {
-- /* For read only case reset to the start again */
-- if ((b->flags & BIO_FLAGS_MEM_RDONLY) || (b->flags & BIO_FLAGS_NONCLEAR_RST)) {
-- bm->length = bm->max;
-+ if (!(b->flags & BIO_FLAGS_MEM_RDONLY)) {
-+ if (b->flags & BIO_FLAGS_NONCLEAR_RST) {
-+ bm->length = bm->max;
-+ } else {
-+ memset(bm->data, 0, bm->max);
-+ bm->length = 0;
-+ }
-+ *bbm->readp = *bbm->buf;
- } else {
-- memset(bm->data, 0, bm->max);
-- bm->length = 0;
-+ /* For read only case just reset to the start again */
-+ *bbm->buf = *bbm->readp;
- }
-- *bbm->readp = *bbm->buf;
- }
- break;
- case BIO_CTRL_EOF:
-- bm = bbm->readp;
- ret = (long)(bm->length == 0);
- break;
- case BIO_C_SET_BUF_MEM_EOF_RETURN:
- b->num = (int)num;
- break;
- case BIO_CTRL_INFO:
-- bm = bbm->readp;
- ret = (long)bm->length;
- if (ptr != NULL) {
- pptr = (char **)ptr;
-@@ -278,8 +293,9 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
- break;
- case BIO_C_GET_BUF_MEM_PTR:
- if (ptr != NULL) {
-- mem_buf_sync(b);
-- bm = bbm->readp;
-+ if (!(b->flags & BIO_FLAGS_MEM_RDONLY))
-+ mem_buf_sync(b);
-+ bm = bbm->buf;
- pptr = (char **)ptr;
- *pptr = (char *)bm;
- }
-@@ -294,7 +310,6 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
- ret = 0L;
- break;
- case BIO_CTRL_PENDING:
-- bm = bbm->readp;
- ret = (long)bm->length;
- break;
- case BIO_CTRL_DUP:
-@@ -318,6 +333,8 @@ static int mem_gets(BIO *bp, char *buf, int size)
- BIO_BUF_MEM *bbm = (BIO_BUF_MEM *)bp->ptr;
- BUF_MEM *bm = bbm->readp;
-
-+ if (bp->flags & BIO_FLAGS_MEM_RDONLY)
-+ bm = bbm->buf;
- BIO_clear_retry_flags(bp);
- j = bm->length;
- if ((size - 1) < j)
-diff --git a/doc/man3/BIO_s_mem.pod b/doc/man3/BIO_s_mem.pod
-index bd0824a080..6d9e747b25 100644
---- a/doc/man3/BIO_s_mem.pod
-+++ b/doc/man3/BIO_s_mem.pod
-@@ -88,6 +88,22 @@ a buffering BIO to the chain will speed up the process.
- Calling BIO_set_mem_buf() on a BIO created with BIO_new_secmem() will
- give undefined results, including perhaps a program crash.
-
-+Switching the memory BIO from read write to read only is not supported and
-+can give undefined results including a program crash. There are two notable
-+exceptions to the rule. The first one is to assign a static memory buffer
-+immediately after BIO creation and set the BIO as read only.
-+
-+The other supported sequence is to start with read write BIO then temporarily
-+switch it to read only and call BIO_reset() on the read only BIO immediately
-+before switching it back to read write. Before the BIO is freed it must be
-+switched back to the read write mode.
-+
-+Calling BIO_get_mem_ptr() on read only BIO will return a BUF_MEM that
-+contains only the remaining data to be read. If the close status of the
-+BIO is set to BIO_NOCLOSE, before freeing the BUF_MEM the data pointer
-+in it must be set to NULL as the data pointer does not point to an
-+allocated memory.
-+
- =head1 BUGS
-
- There should be an option to set the maximum size of a memory BIO.
-diff --git a/test/bio_memleak_test.c b/test/bio_memleak_test.c
-index 36680e30a8..fab5ce73cf 100644
---- a/test/bio_memleak_test.c
-+++ b/test/bio_memleak_test.c
-@@ -18,28 +18,170 @@ static int test_bio_memleak(void)
- int ok = 0;
- BIO *bio;
- BUF_MEM bufmem;
-- const char *str = "BIO test\n";
-+ static const char str[] = "BIO test\n";
- char buf[100];
-
- bio = BIO_new(BIO_s_mem());
-- if (bio == NULL)
-+ if (!TEST_ptr(bio))
- goto finish;
-- bufmem.length = strlen(str) + 1;
-+ bufmem.length = sizeof(str);
- bufmem.data = (char *) str;
- bufmem.max = bufmem.length;
- BIO_set_mem_buf(bio, &bufmem, BIO_NOCLOSE);
- BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY);
-+ if (!TEST_int_eq(BIO_read(bio, buf, sizeof(buf)), sizeof(str)))
-+ goto finish;
-+ if (!TEST_mem_eq(buf, sizeof(str), str, sizeof(str)))
-+ goto finish;
-+ ok = 1;
-
-- if (BIO_read(bio, buf, sizeof(buf)) <= 0)
-- goto finish;
-+finish:
-+ BIO_free(bio);
-+ return ok;
-+}
-
-- ok = strcmp(buf, str) == 0;
-+static int test_bio_get_mem(void)
-+{
-+ int ok = 0;
-+ BIO *bio = NULL;
-+ BUF_MEM *bufmem = NULL;
-+
-+ bio = BIO_new(BIO_s_mem());
-+ if (!TEST_ptr(bio))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12))
-+ goto finish;
-+ BIO_get_mem_ptr(bio, &bufmem);
-+ if (!TEST_ptr(bufmem))
-+ goto finish;
-+ if (!TEST_int_gt(BIO_set_close(bio, BIO_NOCLOSE), 0))
-+ goto finish;
-+ BIO_free(bio);
-+ bio = NULL;
-+ if (!TEST_mem_eq(bufmem->data, bufmem->length, "Hello World\n", 12))
-+ goto finish;
-+ ok = 1;
-
- finish:
- BIO_free(bio);
-+ BUF_MEM_free(bufmem);
- return ok;
- }
-
-+static int test_bio_new_mem_buf(void)
-+{
-+ int ok = 0;
-+ BIO *bio;
-+ BUF_MEM *bufmem;
-+ char data[16];
-+
-+ bio = BIO_new_mem_buf("Hello World\n", 12);
-+ if (!TEST_ptr(bio))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_read(bio, data, 5), 5))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 5, "Hello", 5))
-+ goto finish;
-+ if (!TEST_int_gt(BIO_get_mem_ptr(bio, &bufmem), 0))
-+ goto finish;
-+ if (!TEST_int_lt(BIO_write(bio, "test", 4), 0))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_read(bio, data, 16), 7))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 7, " World\n", 7))
-+ goto finish;
-+ if (!TEST_int_gt(BIO_reset(bio), 0))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_read(bio, data, 16), 12))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 12, "Hello World\n", 12))
-+ goto finish;
-+ ok = 1;
-+
-+finish:
-+ BIO_free(bio);
-+ return ok;
-+}
-+
-+static int test_bio_rdonly_mem_buf(void)
-+{
-+ int ok = 0;
-+ BIO *bio, *bio2 = NULL;
-+ BUF_MEM *bufmem;
-+ char data[16];
-+
-+ bio = BIO_new_mem_buf("Hello World\n", 12);
-+ if (!TEST_ptr(bio))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_read(bio, data, 5), 5))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 5, "Hello", 5))
-+ goto finish;
-+ if (!TEST_int_gt(BIO_get_mem_ptr(bio, &bufmem), 0))
-+ goto finish;
-+ (void)BIO_set_close(bio, BIO_NOCLOSE);
-+
-+ bio2 = BIO_new(BIO_s_mem());
-+ if (!TEST_ptr(bio2))
-+ goto finish;
-+ BIO_set_mem_buf(bio2, bufmem, BIO_CLOSE);
-+ BIO_set_flags(bio2, BIO_FLAGS_MEM_RDONLY);
-+
-+ if (!TEST_int_eq(BIO_read(bio2, data, 16), 7))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 7, " World\n", 7))
-+ goto finish;
-+ if (!TEST_int_gt(BIO_reset(bio2), 0))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_read(bio2, data, 16), 7))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 7, " World\n", 7))
-+ goto finish;
-+ ok = 1;
-+
-+finish:
-+ BIO_free(bio);
-+ BIO_free(bio2);
-+ return ok;
-+}
-+
-+static int test_bio_rdwr_rdonly(void)
-+{
-+ int ok = 0;
-+ BIO *bio = NULL;
-+ char data[16];
-+
-+ bio = BIO_new(BIO_s_mem());
-+ if (!TEST_ptr(bio))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12))
-+ goto finish;
-+
-+ BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY);
-+ if (!TEST_int_eq(BIO_read(bio, data, 16), 12))
-+ goto finish;
-+ if (!TEST_mem_eq(data, 12, "Hello World\n", 12))
-+ goto finish;
-+ if (!TEST_int_gt(BIO_reset(bio), 0))
-+ goto finish;
-+
-+ BIO_clear_flags(bio, BIO_FLAGS_MEM_RDONLY);
-+ if (!TEST_int_eq(BIO_puts(bio, "Hi!\n"), 4))
-+ goto finish;
-+ if (!TEST_int_eq(BIO_read(bio, data, 16), 16))
-+ goto finish;
-+
-+ if (!TEST_mem_eq(data, 16, "Hello World\nHi!\n", 16))
-+ goto finish;
-+
-+ ok = 1;
-+
-+finish:
-+ BIO_free(bio);
-+ return ok;
-+}
-+
-+
- int global_init(void)
- {
- CRYPTO_set_mem_debug(1);
-@@ -50,5 +192,9 @@ int global_init(void)
- int setup_tests(void)
- {
- ADD_TEST(test_bio_memleak);
-+ ADD_TEST(test_bio_get_mem);
-+ ADD_TEST(test_bio_new_mem_buf);
-+ ADD_TEST(test_bio_rdonly_mem_buf);
-+ ADD_TEST(test_bio_rdwr_rdonly);
- return 1;
- }
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-09 12:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-09 12:44 [rpms/openssl] rebase_40beta: Drop patch merged into the upstream-sync patch Tomas Mraz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox