1、問題復現(xiàn)方法
# step 1
ipset create foo hash:ip,port
# step 2
for i in `seq 100 241`; do ipset add foo 192.168.122.$i; done
# step 3
ipset list -o xml
2、問題分析結(jié)果
程序源碼存在bug,導致ipset輸出結(jié)果有誤
3、補丁及下載地址
·銀河麒麟高級服務器操作系統(tǒng) V10 SP1
ipset(aarch64)軟件包下載地址:
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/Packages/ipset-7.3-2.p01.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/Packages/ipset-devel-7.3-2.p01.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/Packages/ipset-help-7.3-2.p01.ky10.noarch.rpm
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/Packages/ipset-libs-7.3-2.p01.ky10.aarch64.rpm
ipset(x86_64)軟件包下載地址:
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/Packages/ipset-7.3-2.p01.ky10.x86_64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/Packages/ipset-devel-7.3-2.p01.ky10.x86_64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/Packages/ipset-help-7.3-2.p01.ky10.noarch.rpm
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/Packages/ipset-libs-7.3-2.p01.ky10.x86_64.rpm
·銀河麒麟高級服務器操作系統(tǒng) V10 SP2
ipset(aarch64)軟件包下載地址:
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/aarch64/Packages/ipset-7.6-0.p01.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/aarch64/Packages/ipset-devel-7.6-0.p01.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/aarch64/Packages/ipset-help-7.6-0.p01.ky10.noarch.rpm
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/aarch64/Packages/ipset-libs-7.6-0.p01.ky10.aarch64.rpm
ipset(x86_64)軟件包下載地址:
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/x86_64/Packages/ipset-7.6-0.p01.ky10.x86_64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/x86_64/Packages/ipset-devel-7.6-0.p01.ky10.x86_64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/x86_64/Packages/ipset-help-7.6-0.p01.ky10.noarch.rpm
https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/updates/x86_64/Packages/ipset-libs-7.6-0.p01.ky10.x86_64.rpm
4、修復和更新方法
修改程序源碼中的SNPRINTF_FAILUR宏,當ipset_print_port()返回-1時,使ipset_print_elem()和ipset_print_proto_port()函數(shù)能夠返回正確的結(jié)果,最終促使程序能夠先輸出和清空outbuf中的數(shù)據(jù),之后再重新向outbuf中寫入當前”ip,port”記錄