evutil: don't call memset before memcpy

(cherry picked from commit 76df883b3a365e65058da1888b7738e72ace7956)
This commit is contained in:
shixuantong 2024-04-01 09:37:18 +08:00 committed by openeuler-sync-bot
parent 466bbabd9e
commit 2d4f7650c0
2 changed files with 44 additions and 1 deletions

View File

@ -0,0 +1,39 @@
From 39073df8318364fc868ab6d90a345ea4fc66e864 Mon Sep 17 00:00:00 2001
From: Liu Dongmiao <liudongmiao@gmail.com>
Date: Sat, 30 Mar 2024 21:44:50 +0800
Subject: [PATCH] evutil: don't call memset before memcpy
In `evutil_parse_sockaddr_port`, it would `memset` the `out` to zero,
however, the `memset` is unnecessary before `memcpy`, and may cause
undefined behavior if the `outlen` is invalid.
This should close #1573.
Reference:https://github.com/libevent/libevent/commit/39073df8
---
evutil.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/evutil.c b/evutil.c
index 9817f08..cc0133f 100644
--- a/evutil.c
+++ b/evutil.c
@@ -2216,7 +2216,6 @@ evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr *out, int *
if ((int)sizeof(sin6) > *outlen)
return -1;
sin6.sin6_scope_id = if_index;
- memset(out, 0, *outlen);
memcpy(out, &sin6, sizeof(sin6));
*outlen = sizeof(sin6);
return 0;
@@ -2235,7 +2234,6 @@ evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr *out, int *
return -1;
if ((int)sizeof(sin) > *outlen)
return -1;
- memset(out, 0, *outlen);
memcpy(out, &sin, sizeof(sin));
*outlen = sizeof(sin);
return 0;
--
2.27.0

View File

@ -1,6 +1,6 @@
Name: libevent Name: libevent
Version: 2.1.12 Version: 2.1.12
Release: 9 Release: 10
Summary: An event notification library Summary: An event notification library
License: BSD License: BSD
@ -22,6 +22,7 @@ Patch6000: backport-ssl-do-not-trigger-EOF-if-some-data-had-been-successf.patch
Patch6001: backport-http-eliminate-redundant-bev-fd-manipulating-and-cac.patch Patch6001: backport-http-eliminate-redundant-bev-fd-manipulating-and-cac.patch
Patch6002: backport-http-fix-fd-leak-on-fd-reset-by-using-bufferevent_re.patch Patch6002: backport-http-fix-fd-leak-on-fd-reset-by-using-bufferevent_re.patch
Patch6003: backport-bufferevent-introduce-bufferevent_replacefd-like-set.patch Patch6003: backport-bufferevent-introduce-bufferevent_replacefd-like-set.patch
Patch6004: backport-evutil-don-t-call-memset-before-memcpy.patch
%description %description
Libevent additionally provides a sophisticated framework for buffered network IO, with support for sockets, Libevent additionally provides a sophisticated framework for buffered network IO, with support for sockets,
@ -82,6 +83,9 @@ rm -f %{buildroot}%{_libdir}/*.la
%changelog %changelog
* Mon Apr 01 2024 shixuantong <shixuantong1@huawei.com> - 2.1.12-10
- evutil: don't call memset before memcpy
* Mon Sep 18 2023 shixuantong <shixuantong1@huawei.com> - 2.1.12-9 * Mon Sep 18 2023 shixuantong <shixuantong1@huawei.com> - 2.1.12-9
- eliminate redundant bev fd manipulating and caching - eliminate redundant bev fd manipulating and caching