文件最后提交记录最后更新时间
update 3.1.0 opensource3 年前
update libcurl cve patch3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVE-42916,CVE-322213 年前
fix CVE-42916,CVE-322213 年前
fix CVE-429153 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix CVEs3 年前
fix cve-2023-23916 cve-2023-23914 cve-2023-239153 年前
fix cve-2023-23916 cve-2023-23914 cve-2023-239153 年前
fix cve-2023-23916 cve-2023-23914 cve-2023-239153 年前
fix cve-2023-23916 cve-2023-23914 cve-2023-239153 年前
fix cve-2023-23916 cve-2023-23914 cve-2023-239153 年前
fix cve-2023-23916 cve-2023-23914 cve-2023-239153 年前
fix libcurl cve3 年前
fix libcurl cve3 年前
fix libcurl cve3 年前
fix libcurl cve3 年前
fix libcurl cve3 年前
fix libcurl cve3 年前
fix libcurl cve3 年前
fix issue #I7C4GW2 年前
fix CVE-2023-380395 个月前
fix CVE-2023-385452 年前
fix CVE-2023-462182 年前
fix cve-2024-110531 年前
fix CVE-2024-23982 年前
fix CVE-2024-7264.patch5 个月前
fix CVE-2024-96811 年前
fix CVE-2025-0167&CVE-2025-07251 年前
fix CVE-2025-0167&CVE-2025-07251 年前
fix CVE-2025-14017,CVE-2025-145244 个月前
fix CVE-2025-14017,CVE-2025-145244 个月前
fix: 添加CVE-2025-15079和CVE-2025-15224安全补丁3 个月前
fix: 添加CVE-2025-15079和CVE-2025-15224安全补丁3 个月前
fix CVE-2025-90868 个月前
fix: 添加CVE-2026-1965、CVE-2026-3783、CVE-2026-3784安全补丁3 个月前
fix: 添加CVE-2026-1965、CVE-2026-3783、CVE-2026-3784安全补丁3 个月前
fix: 添加CVE-2026-1965、CVE-2026-3783、CVE-2026-3784安全补丁3 个月前
三方库构建源码5 年前
fix: 添加CVE-2026-1965、CVE-2026-3783、CVE-2026-3784安全补丁3 个月前
add checksum before build opensource3 年前
update 3.1.0 opensource3 年前
add dcc dcf cbb compile script4 年前
fix cve 2022-43551 and 435523 年前
fix cve 2022-43551 and 435523 年前
ReadMe.txt

open source target name :libcurl source code repository : product warehouse compile dependency: openssl, kerberos, zlib upgrade open source package method: ----|pull command : python $(pwd)../../build/pull_open_source.py "path" "name" "id" |----path : the parent directory name |----name:the package name in product warehouse |----id:pdm version id the compile command : sh ./build.sh Patch Info:

Backup: binarylibs\XXX\libetcdapi\comm\lib目录下的libetcd.so依赖于libcurl组件,并且要求libcurl支持ssl协议,即支持HTTPS, (curl默认支持HTTP,不支持HTTPS)

curl组件编译简要步骤: (1) 设置环境变量LD_LIBRARY_PATH, 指定ssl库路径(使用代码大包中自带的ssl),则可以支持ssl协议 export LD_LIBRARY_PATH=LDLIBRARYPATH:/代码目录/GAUSS200OLAPTRUNK/binarylibs/suse11sp1x8664/openssl/comm/libexportLDLIBRARYPATH=LD_LIBRARY_PATH:/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/openssl/comm/lib export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/zlib1.2.11/comm/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/kerberos/comm/lib 注意:/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/openssl/comm/lib 要换成自己的代码路径,目录要写到lib这一级

(2) 设置环境变量C_INCLUDE_PATH,指定头文件路径 export C_INCLUDE_PATH=$C_INCLUDE_PATH::/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/kerberos/comm/INCLUDE

(3) 解压缩tar包 tar -zxvf curl-7.64.0.tar.gz

(4) 把补丁代码合入curl代码中,准备编译 patch -p0 < huawei_curl-7.64.0.patch 如果本次有新增的补丁代码(huawei_curl-7.64.0.patch中没有包含),请 vi 编辑对应的代码文件,把补丁代码手工改进去。

(5) 进入解压后的curl目录,进行configure配置 cd curl-7.64.0

./configure --prefix=/home/用户名/curl --with-ssl=ssl目录 --without-libssh2 CFLAGS='-fstack-protector-strong -Wl,-z,relro,-z,now' --with-zlib=zlib目录 --with-gssapi_krb5_gauss-includes=gssapi_krb5_gauss/include目录 --with-gssapi_krb5_gauss-libs=gssapi_krb5_gauss/lib目录 此处用户名换成自己的用户,ssl/zlib/gssapi_krb5_gauss目录设置为代码中自带的ssl、zlib、gssapi_krb5_gauss/include、ssapi_krb5_gauss/lib目录,例如:/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/openssl/comm 注意,这里的ssl/zlib目录要写到comm 这一级,和第(1)步中的lib 不一样。

示例: ./configure --prefix=/home/用户名/curl --with-ssl=/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/openssl/comm --without-libssh2 CFLAGS='-fstack-protector-strong -Wl,-z,relro,-z,now' --with-zlib=/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/zlib1.2.11/comm --with-gssapi_krb5_gauss-includes=/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/kerberos/comm/include --with-gssapi_krb5_gauss-libs=/代码目录/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/kerberos/comm/lib 注: CFLAGS='-fstack-protector-strong -Wl,-z,relro,-z,now ' 是安全编译选项

configure最终结果: configure: Configured to build curl/libcurl:

curl version: 7.64.0 SSL support: enabled (OpenSSL) SSH support: no (--with-libssh2) zlib support: enabled brotli support: no (--with-brotli) GSS-API support: enabled (MIT Kerberos/Heimdal) TLS-SRP support: enabled resolver: POSIX threaded IPv6 support: enabled Unix sockets support: enabled IDN support: no (--with-{libidn2,winidn}) Build libcurl: Shared=yes, Static=yes Built-in manual: enabled --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI support: no (--enable-sspi) ca cert bundle: /etc/pki/tls/certs/ca-bundle.crt ca cert path: no ca fallback: no LDAP support: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS support: no (--enable-ldaps) RTSP support: enabled RTMP support: no (--with-librtmp) metalink support: no (--with-libmetalink) PSL support: no (libpsl not found) HTTP2 support: disabled (--with-nghttp2) Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP

(6) 编译生成lib make make install

(8)最后切换到/home/用户名/curl/lib目录下验证编译好的二进制文件是否已经支持HTTPS协议。 ldd libcurl.so显示依赖 libssl.so.1.1,如下

[chenxin@linux-z8tq lib]$ ldd libcurl.so linux-vdso.so.1 => (0x0000ffff80ab0000) libssl.so.1.1 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/openssl/comm/lib/libssl.so.1.1 (0x0000ffff80910000) libcrypto.so.1.1 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/openssl/comm/lib/libcrypto.so.1.1 (0x0000ffff80620000) libgssapi_krb5_gauss.so.2 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/kerberos/comm/lib/libgssapi_krb5_gauss.so.2 (0x0000ffff805b0000) libkrb5_gauss.so.3 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/kerberos/comm/lib/libkrb5_gauss.so.3 (0x0000ffff804c0000) libk5crypto_gauss.so.3 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs/suse11_sp1_x86_64/comm/lib/libk5crypto_gauss.so.3 (0x0000ffff80470000) libcom_err_gauss.so.3 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs//comm/lib/suse11_sp1_x86_64/kerberos/comm/lib/libcom_err_gauss.so.3 (0x0000ffff80440000) libz.so.1 => /usr/local/lib/libz.so.1 (0x0000ffff803e0000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000ffff803a0000) libc.so.6 => /lib64/libc.so.6 (0x0000ffff80210000) /lib/ld-linux-aarch64.so.1 (0x0000ffff80ac0000) libdl.so.2 => /lib64/libdl.so.2 (0x0000ffff801e0000) libkrb5support_gauss.so.0 => /home/chenxin/r8c10/GAUSS200_OLAP_TRUNK/binarylibs/redhat6.4_aarch64/kerberos/comm/lib/libkrb5support_gauss.so.0 (0x0000ffff801b0000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000ffff80180000) libresolv.so.2 => /lib64/libresolv.so.2 (0x0000ffff80140000)

(7) 将/home/用户名/curl/lib目录下的libcurl.a, libcurl.so.4.5.0 文件复制到代码的如下目录: (libcurl与操作系统平台无关,所以编译的libcurl.so文件redhat,suse等通用,libcurl.la文件就不要复制了,该文件是文本文件,运行用不到) GAUSS200_OLAP_TRUNK\binarylibs\redhat6.4_x86_64\libcurl\comm\lib GAUSS200_OLAP_TRUNK\binarylibs\suse11_sp1_x86_64\libcurl\comm\lib GAUSS200_OLAP_TRUNK\binarylibs\suse12_x86_64\libcurl\comm\lib 同时把libcurl.so.4.5.0复制两份,分别改名为libcurl.so.4和 libcurl.so

(8) 把新增的补丁代码加入到huawei_curl-7.64.0.patch中归档 用如下命令生成补丁差异代码,前面目录是老代码,后面目录是打补丁的新代码,把生成的差异追加到huawei_curl-7.64.0.patch文件末尾。

diff -Naru curl-7.64.0/lib/tftp.c curl/curl-7.64.0/lib/tftp.c --- curl-7.64.0/lib/tftp.c 2019-01-26 07:29:47.000000000 +0800 +++ curl/curl-7.64.0/lib/tftp.c 2019-06-17 17:44:44.470111260 +0800 @@ -1005,7 +1005,7 @@ state->sockfd = state->conn->sock[FIRSTSOCKET]; state->state = TFTP_STATE_START; state->error = TFTP_ERR_NONE;

  • state->blksize = TFTP_BLKSIZE_DEFAULT;
  • state->blksize = blksize; state->requested_blksize = blksize;

    ((struct sockaddr *)&state->local_addr)->sa_family =