commit d21f92a7f9a7f639da5afecca71284037768084e Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 10:58:23 2019 -0400 Package init diff --git a/6000-tevent-fix-CID-1437976-dereference-before-null-check.patch b/6000-tevent-fix-CID-1437976-dereference-before-null-check.patch new file mode 100644 index 0000000..d3f4eb6 --- /dev/null +++ b/6000-tevent-fix-CID-1437976-dereference-before-null-check.patch @@ -0,0 +1,37 @@ +From 3761d42e4fe563ad893f14468e98bd1f5a807604 Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Tue, 17 Jul 2018 12:54:29 +0200 +Subject: [PATCH 03/27] tevent: fix CID 1437976 dereference before null check + +Signed-off-by: Ralph Boehme +Reviewed-by: Volker Lendecke +Signed-off-by: root +--- + tevent_threads.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tevent_threads.c b/tevent_threads.c +index 21a9b686ba9..a89990f231a 100644 +--- a/tevent_threads.c ++++ b/tevent_threads.c +@@ -473,7 +473,7 @@ void _tevent_threaded_schedule_immediate(struct tevent_threaded_context *tctx, + #ifdef HAVE_PTHREAD + const char *create_location = im->create_location; + struct tevent_context *main_ev = NULL; +- struct tevent_wrapper_glue *glue = tctx->event_ctx->wrapper.glue; ++ struct tevent_wrapper_glue *glue = NULL; + int ret, wakeup_fd; + + ret = pthread_mutex_lock(&tctx->event_ctx_mutex); +@@ -492,6 +492,8 @@ void _tevent_threaded_schedule_immediate(struct tevent_threaded_context *tctx, + return; + } + ++ glue = tctx->event_ctx->wrapper.glue; ++ + if ((im->event_ctx != NULL) || (handler == NULL)) { + abort(); + } +-- +2.19.1 + diff --git a/6001-tevent-fix-CID-1437974-dereference-after-null-check.patch b/6001-tevent-fix-CID-1437974-dereference-after-null-check.patch new file mode 100644 index 0000000..c6a04fd --- /dev/null +++ b/6001-tevent-fix-CID-1437974-dereference-after-null-check.patch @@ -0,0 +1,36 @@ +From ba991da43469a1844b67fcec19a15ceda409fc3f Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Tue, 17 Jul 2018 12:59:50 +0200 +Subject: [PATCH 04/27] tevent: fix CID 1437974 dereference after null check + +Probably a copy/paste error from the tevent_debug() statement a few +lines above as at this place we want to pass main_ev directly to +tevent_debug() anyway. + +Signed-off-by: Ralph Boehme +Reviewed-by: Volker Lendecke + +Autobuild-User(master): Volker Lendecke +Autobuild-Date(master): Tue Jul 17 16:21:21 CEST 2018 on sn-devel-144 + +Signed-off-by: root +--- + tevent_wrapper.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tevent_wrapper.c b/tevent_wrapper.c +index 05c4c06968a..a07696af0a4 100644 +--- a/tevent_wrapper.c ++++ b/tevent_wrapper.c +@@ -347,7 +347,7 @@ struct tevent_context *_tevent_context_wrapper_create(struct tevent_context *mai + /* + * wrappers conflict with nesting + */ +- tevent_debug(main_ev->wrapper.glue->main_ev, TEVENT_DEBUG_FATAL, ++ tevent_debug(main_ev, TEVENT_DEBUG_FATAL, + "%s: %s() conflicts with nesting\n", + __func__, location); + errno = EINVAL; +-- +2.19.1 + diff --git a/6002-lib-tevent-Use-correct-C99-initializer-for-tevent_re.patch b/6002-lib-tevent-Use-correct-C99-initializer-for-tevent_re.patch new file mode 100644 index 0000000..3d861c2 --- /dev/null +++ b/6002-lib-tevent-Use-correct-C99-initializer-for-tevent_re.patch @@ -0,0 +1,36 @@ +From 0da2e9c215f882ea4c331ac4f17738913beb7404 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Mon, 14 Jan 2019 11:59:59 +0100 +Subject: [PATCH 21/27] lib:tevent: Use correct C99 initializer for tevent_req + +Signed-off-by: Andreas Schneider +Reviewed-by: Douglas Bagnall +Signed-off-by: root +--- + tevent_req.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/tevent_req.c b/tevent_req.c +index 76e27b8f7e9..7821d9ae734 100644 +--- a/tevent_req.c ++++ b/tevent_req.c +@@ -84,10 +84,12 @@ struct tevent_req *_tevent_req_create(TALLOC_CTX *mem_ctx, + } + + *req = (struct tevent_req) { +- .internal.private_type = type, +- .internal.create_location = location, +- .internal.state = TEVENT_REQ_IN_PROGRESS, +- .internal.trigger = tevent_create_immediate(req) ++ .internal = { ++ .private_type = type, ++ .create_location = location, ++ .state = TEVENT_REQ_IN_PROGRESS, ++ .trigger = tevent_create_immediate(req), ++ }, + }; + + data = talloc_zero_size(req, data_size); +-- +2.19.1 + diff --git a/libtevent.spec b/libtevent.spec new file mode 100644 index 0000000..d162e52 --- /dev/null +++ b/libtevent.spec @@ -0,0 +1,106 @@ +%{!?python3_sitearch: %define python3_sitearch %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} + +Name: libtevent +Version: 0.9.37 +Release: 4 +Summary: Tevent is an event system based on the talloc memory management library. +License: LGPLv3+ +URL: http://tevent.samba.org +Source0: http://samba.org/ftp/tevent/tevent-%{version}.tar.gz + +Patch6000: 6000-tevent-fix-CID-1437976-dereference-before-null-check.patch +Patch6001: 6001-tevent-fix-CID-1437974-dereference-after-null-check.patch +Patch6002: 6002-lib-tevent-Use-correct-C99-initializer-for-tevent_re.patch + +BuildRequires: gcc libtirpc-devel docbook-style-xsl doxygen libxslt git +BuildRequires: python2-devel python2-talloc-devel >= 2.1.0 libtalloc-devel >= 2.1.0 +BuildRequires: python3-devel python3-talloc-devel >= 2.0.7 + +Provides: bundled(libreplace) + + +%description +Tevent is an event system based on the talloc memory management library. It is the core event system used in Samba. +The low level tevent has support for many event types, including timers, signals, and the classic file descriptor events. +Tevent also provide helpers to deal with asynchronous code providing the tevent_req (tevent request) functions. + +%package devel +Summary: Libraries and header files for tevent +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: libtalloc-devel%{?_isa} >= 2.0.7 pkgconfig + +%description devel +Libraries and header files for tevent + +%package -n python2-tevent +Summary: Python 2 libraries files for tevent +Requires: libtevent%{?_isa} = %{version}-%{release} + +%{?python_provide:%python_provide python2-tevent} + +%description -n python2-tevent +Python2 libraries files for tevent + +%package -n python3-tevent +Summary: Python 3 libraries files for tevent +Requires: libtevent%{?_isa} = %{version}-%{release} + +%{?python_provide:%python_provide python3-tevent} + +%description -n python3-tevent +Python3 libraries files for tevent + +%package help +Summary: Man for tevent +Requires: man + +%description help +Man for tevent + +%prep +%autosetup -n tevent-%{version} -p1 -Sgit + +%build + +pathfix.py -npi %{__python2} buildtools/bin/waf + +%configure --disable-rpath --bundled-libraries=NONE --builtin-libraries=replace --extra-python=%{__python3} + +%make_build V=1 +doxygen doxy.config + +%install +%make_install +find $RPM_BUILD_ROOT -name "*.so*" -exec chmod -c +x {} \; + +mkdir -p $RPM_BUILD_ROOT/%{_mandir} +cp -a ./doc/man/* $RPM_BUILD_ROOT/%{_mandir}/ + +%check +%make_build check + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%{_libdir}/libtevent.so.* + +%files devel +%{_includedir}/tevent.h +%{_libdir}/libtevent.so +%{_libdir}/pkgconfig/tevent.pc + +%files -n python2-tevent +%{python2_sitearch}/* + +%files -n python3-tevent +%{python3_sitearch}/* + +%files help +%exclude %{_mandir}/man3/todo* +%{_mandir}/man3/tevent* + + +%changelog +* Tue Sep 3 2019 wubo - 0.9.37-4 +- Package init diff --git a/tevent-0.9.37.tar.gz b/tevent-0.9.37.tar.gz new file mode 100644 index 0000000..b85d4a7 Binary files /dev/null and b/tevent-0.9.37.tar.gz differ