1 Star 0 Fork 40

tmacbb/haproxy

forked from src-openEuler/haproxy 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
backport-ssl_sock-add-check-for-ha_meth.patch 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
xh 提交于 2023-09-27 11:28 +08:00 . backport to fix potential coredump
From 15c3d20e315f1f06c9649ae598de86d61d41085b Mon Sep 17 00:00:00 2001
From: eaglegai <eaglegai@163.com>
Date: Fri, 26 May 2023 16:42:47 +0800
Subject: [PATCH] BUG/MINOR: ssl_sock: add check for ha_meth
in __ssl_sock_init, BIO_meth_new may failed and return NULL if
OPENSSL_zalloc failed. in this case, ha_meth will be NULL, and then
crash happens in BIO_meth_set_write. So, we add a check for ha_meth.
Conflict:NA
Reference:https://github.com/haproxy/haproxy/commit/15c3d20e315f1f06c9649ae598de86d61d41085b
---
src/ssl_sock.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index e637b0423a9a..ff0db9d1a1c2 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -7561,13 +7561,15 @@ static void __ssl_sock_init(void)
ERR_load_SSL_strings();
#endif
ha_meth = BIO_meth_new(0x666, "ha methods");
- BIO_meth_set_write(ha_meth, ha_ssl_write);
- BIO_meth_set_read(ha_meth, ha_ssl_read);
- BIO_meth_set_ctrl(ha_meth, ha_ssl_ctrl);
- BIO_meth_set_create(ha_meth, ha_ssl_new);
- BIO_meth_set_destroy(ha_meth, ha_ssl_free);
- BIO_meth_set_puts(ha_meth, ha_ssl_puts);
- BIO_meth_set_gets(ha_meth, ha_ssl_gets);
+ if (ha_meth != NULL) {
+ BIO_meth_set_write(ha_meth, ha_ssl_write);
+ BIO_meth_set_read(ha_meth, ha_ssl_read);
+ BIO_meth_set_ctrl(ha_meth, ha_ssl_ctrl);
+ BIO_meth_set_create(ha_meth, ha_ssl_new);
+ BIO_meth_set_destroy(ha_meth, ha_ssl_free);
+ BIO_meth_set_puts(ha_meth, ha_ssl_puts);
+ BIO_meth_set_gets(ha_meth, ha_ssl_gets);
+ }
HA_SPIN_INIT(&ckch_lock);
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tmacbb/haproxy.git
git@gitee.com:tmacbb/haproxy.git
tmacbb
haproxy
haproxy
master

搜索帮助