Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libfilezilla for openSUSE:Factory 
checked in at 2022-05-12 23:00:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libfilezilla (Old)
 and      /work/SRC/openSUSE:Factory/.libfilezilla.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libfilezilla"

Thu May 12 23:00:55 2022 rev:45 rq:976595 version:0.37.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libfilezilla/libfilezilla.changes        
2022-04-08 22:46:52.670367238 +0200
+++ /work/SRC/openSUSE:Factory/.libfilezilla.new.1538/libfilezilla.changes      
2022-05-12 23:01:54.716921796 +0200
@@ -1,0 +2,13 @@
+Thu May 12 10:24:54 UTC 2022 - ecsos <ec...@opensuse.org>
+
+- Update to 0.37.2
+  * New features:
+    - Added a null_logger that doesn't do anything
+  * Bugfixes and minor changes:
+    - MSW: fz::mkdir with restricted permissions now uses
+      inheritable ACLs
+    - MSW: Minor performance improvements reading from fz::process
+      and explicit cancellation of pending I/O when killing child
+      processes.
+
+-------------------------------------------------------------------

Old:
----
  libfilezilla-0.37.1.tar.bz2

New:
----
  libfilezilla-0.37.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libfilezilla.spec ++++++
--- /var/tmp/diff_new_pack.7PfTIX/_old  2022-05-12 23:01:55.316922601 +0200
+++ /var/tmp/diff_new_pack.7PfTIX/_new  2022-05-12 23:01:55.320922606 +0200
@@ -20,7 +20,7 @@
 %define libname                %{name}%{major}
 %define develname      %{name}-devel
 Name:           libfilezilla
-Version:        0.37.1
+Version:        0.37.2
 Release:        0
 Summary:        C++ library for filezilla
 License:        GPL-2.0-or-later
@@ -80,7 +80,10 @@
 
 
 
+
+
 # Need %%lang_package expanded for an extra conflict with an old library 
package
+
 %package lang
 # FIXME: consider using %%lang_package macro
 Summary:        Translations for package %{name}

++++++ libfilezilla-0.37.1.tar.bz2 -> libfilezilla-0.37.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/NEWS new/libfilezilla-0.37.2/NEWS
--- old/libfilezilla-0.37.1/NEWS        2022-04-08 16:41:03.000000000 +0200
+++ new/libfilezilla-0.37.2/NEWS        2022-04-29 15:57:33.000000000 +0200
@@ -1,3 +1,9 @@
+0.37.2 (2022-04-29)
+
++ Added a null_logger that doesn't do anything
+- MSW: fz::mkdir with restricted permissions now uses inheritable ACLs
+- MSW: Minor performance improvements reading from fz::process and explicit 
cancellation of pending I/O when killing child processes.
+
 0.37.1 (2022-04-08)
 
 + Added convenience functions ot fz::json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/configure 
new/libfilezilla-0.37.2/configure
--- old/libfilezilla-0.37.1/configure   2022-04-08 16:41:14.000000000 +0200
+++ new/libfilezilla-0.37.2/configure   2022-04-29 15:57:37.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libfilezilla 0.37.1.
+# Generated by GNU Autoconf 2.69 for libfilezilla 0.37.2.
 #
 # Report bugs to <tim.ko...@filezilla-project.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libfilezilla'
 PACKAGE_TARNAME='libfilezilla'
-PACKAGE_VERSION='0.37.1'
-PACKAGE_STRING='libfilezilla 0.37.1'
+PACKAGE_VERSION='0.37.2'
+PACKAGE_STRING='libfilezilla 0.37.2'
 PACKAGE_BUGREPORT='tim.ko...@filezilla-project.org'
 PACKAGE_URL='https://lib.filezilla-project.org/'
 
@@ -1451,7 +1451,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libfilezilla 0.37.1 to adapt to many kinds of systems.
+\`configure' configures libfilezilla 0.37.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1522,7 +1522,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libfilezilla 0.37.1:";;
+     short | recursive ) echo "Configuration of libfilezilla 0.37.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1678,7 +1678,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libfilezilla configure 0.37.1
+libfilezilla configure 0.37.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2123,7 +2123,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libfilezilla $as_me 0.37.1, which was
+It was created by libfilezilla $as_me 0.37.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2478,7 +2478,7 @@
 # If any interfaces have been added since the last public release, then 
increment age.
 # If any interfaces have been removed or changed since the last public 
release, then set age to 0.
 # CURRENT:REVISION:AGE
-LIBRARY_VERSION=26:0:1
+LIBRARY_VERSION=27:0:2
 
 
 ac_config_headers="$ac_config_headers config/config.hpp"
@@ -2994,7 +2994,7 @@
 
 # Define the identity of the package.
  PACKAGE='libfilezilla'
- VERSION='0.37.1'
+ VERSION='0.37.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -22456,7 +22456,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libfilezilla $as_me 0.37.1, which was
+This file was extended by libfilezilla $as_me 0.37.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22523,7 +22523,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libfilezilla config.status 0.37.1
+libfilezilla config.status 0.37.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/configure.ac 
new/libfilezilla-0.37.2/configure.ac
--- old/libfilezilla-0.37.1/configure.ac        2022-04-08 16:41:03.000000000 
+0200
+++ new/libfilezilla-0.37.2/configure.ac        2022-04-29 15:57:33.000000000 
+0200
@@ -1,4 +1,4 @@
-???AC_INIT([libfilezilla],[0.37.1],[tim.ko...@filezilla-project.org],[],[https://lib.filezilla-project.org/])
+???AC_INIT([libfilezilla],[0.37.2],[tim.ko...@filezilla-project.org],[],[https://lib.filezilla-project.org/])
 
 # Update the version information only immediately before a public release of 
your software
 # If the library source code has changed at all since the last update, then 
increment revision (???c:r:a??? becomes ???c:r+1:a???).
@@ -6,7 +6,7 @@
 # If any interfaces have been added since the last public release, then 
increment age.
 # If any interfaces have been removed or changed since the last public 
release, then set age to 0.
 # CURRENT:REVISION:AGE
-LIBRARY_VERSION=26:0:1
+LIBRARY_VERSION=27:0:2
 
 
 AC_CONFIG_HEADERS([config/config.hpp])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/Makefile.am 
new/libfilezilla-0.37.2/lib/Makefile.am
--- old/libfilezilla-0.37.1/lib/Makefile.am     2022-04-01 14:35:07.000000000 
+0200
+++ new/libfilezilla-0.37.2/lib/Makefile.am     2022-04-29 15:57:33.000000000 
+0200
@@ -16,6 +16,7 @@
        json.cpp \
        jws.cpp \
        local_filesys.cpp \
+       logger.cpp \
        mutex.cpp \
        nonowning_buffer.cpp \
        process.cpp \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/Makefile.in 
new/libfilezilla-0.37.2/lib/Makefile.in
--- old/libfilezilla-0.37.1/lib/Makefile.in     2022-04-08 16:41:14.000000000 
+0200
+++ new/libfilezilla-0.37.2/lib/Makefile.in     2022-04-29 15:57:37.000000000 
+0200
@@ -179,14 +179,15 @@
        encryption.cpp event.cpp event_handler.cpp event_loop.cpp \
        file.cpp hash.cpp hostname_lookup.cpp impersonation.cpp \
        invoker.cpp iputils.cpp json.cpp jws.cpp local_filesys.cpp \
-       mutex.cpp nonowning_buffer.cpp process.cpp rate_limiter.cpp \
-       rate_limited_layer.cpp recursive_remove.cpp signature.cpp \
-       socket.cpp socket_errors.cpp string.cpp thread.cpp \
-       thread_pool.cpp tls_info.cpp tls_layer.cpp tls_layer_impl.cpp \
-       tls_system_trust_store.cpp time.cpp translate.cpp uri.cpp \
-       util.cpp version.cpp windows/dll.cpp windows/poller.cpp \
-       windows/registry.cpp windows/security_descriptor_builder.cpp \
-       glue/unix.cpp unix/poller.cpp
+       logger.cpp mutex.cpp nonowning_buffer.cpp process.cpp \
+       rate_limiter.cpp rate_limited_layer.cpp recursive_remove.cpp \
+       signature.cpp socket.cpp socket_errors.cpp string.cpp \
+       thread.cpp thread_pool.cpp tls_info.cpp tls_layer.cpp \
+       tls_layer_impl.cpp tls_system_trust_store.cpp time.cpp \
+       translate.cpp uri.cpp util.cpp version.cpp windows/dll.cpp \
+       windows/poller.cpp windows/registry.cpp \
+       windows/security_descriptor_builder.cpp glue/unix.cpp \
+       unix/poller.cpp
 am__dirstamp = $(am__leading_dot)dirstamp
 @FZ_WINDOWS_TRUE@am__objects_1 = windows/libfilezilla_la-dll.lo \
 @FZ_WINDOWS_TRUE@      windows/libfilezilla_la-poller.lo \
@@ -202,8 +203,9 @@
        libfilezilla_la-impersonation.lo libfilezilla_la-invoker.lo \
        libfilezilla_la-iputils.lo libfilezilla_la-json.lo \
        libfilezilla_la-jws.lo libfilezilla_la-local_filesys.lo \
-       libfilezilla_la-mutex.lo libfilezilla_la-nonowning_buffer.lo \
-       libfilezilla_la-process.lo libfilezilla_la-rate_limiter.lo \
+       libfilezilla_la-logger.lo libfilezilla_la-mutex.lo \
+       libfilezilla_la-nonowning_buffer.lo libfilezilla_la-process.lo \
+       libfilezilla_la-rate_limiter.lo \
        libfilezilla_la-rate_limited_layer.lo \
        libfilezilla_la-recursive_remove.lo \
        libfilezilla_la-signature.lo libfilezilla_la-socket.lo \
@@ -254,6 +256,7 @@
        ./$(DEPDIR)/libfilezilla_la-json.Plo \
        ./$(DEPDIR)/libfilezilla_la-jws.Plo \
        ./$(DEPDIR)/libfilezilla_la-local_filesys.Plo \
+       ./$(DEPDIR)/libfilezilla_la-logger.Plo \
        ./$(DEPDIR)/libfilezilla_la-mutex.Plo \
        ./$(DEPDIR)/libfilezilla_la-nonowning_buffer.Plo \
        ./$(DEPDIR)/libfilezilla_la-process.Plo \
@@ -539,7 +542,7 @@
 libfilezilla_la_SOURCES = buffer.cpp encode.cpp encryption.cpp \
        event.cpp event_handler.cpp event_loop.cpp file.cpp hash.cpp \
        hostname_lookup.cpp impersonation.cpp invoker.cpp iputils.cpp \
-       json.cpp jws.cpp local_filesys.cpp mutex.cpp \
+       json.cpp jws.cpp local_filesys.cpp logger.cpp mutex.cpp \
        nonowning_buffer.cpp process.cpp rate_limiter.cpp \
        rate_limited_layer.cpp recursive_remove.cpp signature.cpp \
        socket.cpp socket_errors.cpp string.cpp thread.cpp \
@@ -733,6 +736,7 @@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-json.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-jws.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-local_filesys.Plo@am__quote@ # 
am--include-marker
+@AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-logger.Plo@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-mutex.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-nonowning_buffer.Plo@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/libfilezilla_la-process.Plo@am__quote@ # 
am--include-marker
@@ -896,6 +900,13 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(libfilezilla_la_CPPFLAGS) $(CPPFLAGS) 
$(libfilezilla_la_CXXFLAGS) $(CXXFLAGS) -c -o libfilezilla_la-local_filesys.lo 
`test -f 'local_filesys.cpp' || echo '$(srcdir)/'`local_filesys.cpp
 
+libfilezilla_la-logger.lo: logger.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(libfilezilla_la_CPPFLAGS) $(CPPFLAGS) 
$(libfilezilla_la_CXXFLAGS) $(CXXFLAGS) -MT libfilezilla_la-logger.lo -MD -MP 
-MF $(DEPDIR)/libfilezilla_la-logger.Tpo -c -o libfilezilla_la-logger.lo `test 
-f 'logger.cpp' || echo '$(srcdir)/'`logger.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) 
$(DEPDIR)/libfilezilla_la-logger.Tpo $(DEPDIR)/libfilezilla_la-logger.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='logger.cpp' 
object='libfilezilla_la-logger.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(libfilezilla_la_CPPFLAGS) $(CPPFLAGS) 
$(libfilezilla_la_CXXFLAGS) $(CXXFLAGS) -c -o libfilezilla_la-logger.lo `test 
-f 'logger.cpp' || echo '$(srcdir)/'`logger.cpp
+
 libfilezilla_la-mutex.lo: mutex.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(libfilezilla_la_CPPFLAGS) $(CPPFLAGS) 
$(libfilezilla_la_CXXFLAGS) $(CXXFLAGS) -MT libfilezilla_la-mutex.lo -MD -MP 
-MF $(DEPDIR)/libfilezilla_la-mutex.Tpo -c -o libfilezilla_la-mutex.lo `test -f 
'mutex.cpp' || echo '$(srcdir)/'`mutex.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/libfilezilla_la-mutex.Tpo 
$(DEPDIR)/libfilezilla_la-mutex.Plo
@@ -1314,6 +1325,7 @@
        -rm -f ./$(DEPDIR)/libfilezilla_la-json.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-jws.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-local_filesys.Plo
+       -rm -f ./$(DEPDIR)/libfilezilla_la-logger.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-mutex.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-nonowning_buffer.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-process.Plo
@@ -1402,6 +1414,7 @@
        -rm -f ./$(DEPDIR)/libfilezilla_la-json.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-jws.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-local_filesys.Plo
+       -rm -f ./$(DEPDIR)/libfilezilla_la-logger.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-mutex.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-nonowning_buffer.Plo
        -rm -f ./$(DEPDIR)/libfilezilla_la-process.Plo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/file.cpp 
new/libfilezilla-0.37.2/lib/file.cpp
--- old/libfilezilla-0.37.1/lib/file.cpp        2022-04-01 14:35:07.000000000 
+0200
+++ new/libfilezilla-0.37.2/lib/file.cpp        2022-04-29 15:57:33.000000000 
+0200
@@ -81,7 +81,7 @@
                        sdb.add(security_descriptor_builder::administrators);
                }
 
-               auto sd = sdb.get_sd();
+               auto sd = sdb.get_sd(sdb_flags::none);
                if (!sd) {
                        return {result::other};
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/libfilezilla/logger.hpp 
new/libfilezilla-0.37.2/lib/libfilezilla/logger.hpp
--- old/libfilezilla-0.37.1/lib/libfilezilla/logger.hpp 2022-04-01 
14:35:07.000000000 +0200
+++ new/libfilezilla-0.37.2/lib/libfilezilla/logger.hpp 2022-04-29 
15:57:33.000000000 +0200
@@ -50,7 +50,7 @@
 class logger_interface
 {
 public:
-       logger_interface() = default;
+       logger_interface() noexcept = default;
        virtual ~logger_interface() = default;
 
        logger_interface(logger_interface const&) = delete;
@@ -152,6 +152,23 @@
                return arg;
        }
 };
+
+/// A logger that does not log anything.
+class FZ_PUBLIC_SYMBOL null_logger final : public logger_interface
+{
+public:
+       null_logger() noexcept
+       {
+               disable(levels());
+       }
+
+       virtual void do_log(logmsg::type, std::wstring &&) override {}
+       virtual void set_all(logmsg::type) override {}
+       virtual void enable(logmsg::type) override {}
+};
+
+null_logger FZ_PUBLIC_SYMBOL & get_null_logger();
+
 }
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/libfilezilla.vcxproj 
new/libfilezilla-0.37.2/lib/libfilezilla.vcxproj
--- old/libfilezilla-0.37.1/lib/libfilezilla.vcxproj    2022-04-01 
14:35:07.000000000 +0200
+++ new/libfilezilla-0.37.2/lib/libfilezilla.vcxproj    2022-04-29 
15:57:34.000000000 +0200
@@ -87,6 +87,7 @@
     <ClCompile Include="invoker.cpp" />
     <ClCompile Include="iputils.cpp" />
     <ClCompile Include="local_filesys.cpp" />
+    <ClCompile Include="logger.cpp" />
     <ClCompile Include="mutex.cpp" />
     <ClCompile Include="nonowning_buffer.cpp" />
     <ClCompile Include="process.cpp" />
@@ -162,4 +163,4 @@
     <ClInclude Include="windows\security_descriptor_builder.hpp" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
\ No newline at end of file
+</Project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/local_filesys.cpp 
new/libfilezilla-0.37.2/lib/local_filesys.cpp
--- old/libfilezilla-0.37.1/lib/local_filesys.cpp       2021-11-02 
15:59:45.000000000 +0100
+++ new/libfilezilla-0.37.2/lib/local_filesys.cpp       2022-04-29 
15:57:34.000000000 +0200
@@ -917,7 +917,6 @@
 #ifdef FZ_WINDOWS
 
        SECURITY_ATTRIBUTES attr{};
-       attr.bInheritHandle = false;
        attr.nLength = sizeof(SECURITY_ATTRIBUTES);
 
        security_descriptor_builder sdb;
@@ -926,7 +925,7 @@
                if (permissions == mkdir_permissions::cur_user_and_admins) {
                        sdb.add(security_descriptor_builder::administrators);
                }
-               auto sd = sdb.get_sd();
+               auto sd = sdb.get_sd(sdb_flags::inheritable);
                if (!sd) {
                        return {result::other};
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/logger.cpp 
new/libfilezilla-0.37.2/lib/logger.cpp
--- old/libfilezilla-0.37.1/lib/logger.cpp      1970-01-01 01:00:00.000000000 
+0100
+++ new/libfilezilla-0.37.2/lib/logger.cpp      2022-04-29 15:57:34.000000000 
+0200
@@ -0,0 +1,12 @@
+#include "libfilezilla/logger.hpp"
+
+namespace fz {
+
+null_logger& get_null_logger()
+{
+       static null_logger log;
+       return log;
+}
+
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/process.cpp 
new/libfilezilla-0.37.2/lib/process.cpp
--- old/libfilezilla-0.37.1/lib/process.cpp     2022-04-08 16:41:03.000000000 
+0200
+++ new/libfilezilla-0.37.2/lib/process.cpp     2022-04-29 15:57:34.000000000 
+0200
@@ -60,7 +60,7 @@
                // Restrict pipe to self
                security_descriptor_builder sdb;
                sdb.add(security_descriptor_builder::self);
-               auto sd = sdb.get_sd();
+               auto sd = sdb.get_sd(sdb_flags::none);
                if (!sd) {
                        return false;
                }
@@ -395,6 +395,21 @@
                        task_.join();
                        quit_ = false;
 
+                       if (out_.read_ != INVALID_HANDLE_VALUE) {
+                               CancelIo(out_.read_);
+                               DWORD read{};
+                               while (!GetOverlappedResult(out_.read_, 
&ol_read_, &read, false) && GetLastError() == ERROR_IO_PENDING) {
+                                       yield();
+                               }
+                       }
+                       if (in_.write_ != INVALID_HANDLE_VALUE) {
+                               CancelIo(in_.write_);
+                               DWORD written{};
+                               while (!GetOverlappedResult(in_.write_, 
&ol_write_, &written, false) && GetLastError() == ERROR_IO_PENDING) {
+                                       yield();
+                               }
+                       }
+
                        remove_pending_events();
                }
 
@@ -460,7 +475,7 @@
 
        rwresult read(void* buffer, size_t len)
        {
-               if (!len) {
+               if (!len || out_.read_ == INVALID_HANDLE_VALUE) {
                        return rwresult{rwresult::invalid, 0};
                }
 
@@ -475,11 +490,13 @@
                                        if (read_buffer_.empty()) {
                                                DWORD res = 
ReadFile(out_.read_, read_buffer_.get(64 * 1024), 64 * 1024, nullptr, 
&ol_read_);
                                                DWORD err = GetLastError();
-                                               if (!res && err != 
ERROR_IO_PENDING) {
-                                                       return rwresult{ 
rwresult::other, err };
+                                               if (!res) {
+                                                       if (err != 
ERROR_IO_PENDING) {
+                                                               return 
rwresult{ rwresult::other, err };
+                                                       }
+                                                       waiting_read_ = true;
+                                                       SetEvent(sync_);
                                                }
-                                               waiting_read_ = true;
-                                               SetEvent(sync_);
                                        }
                                        return rwresult(len);
                                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/string.cpp 
new/libfilezilla-0.37.2/lib/string.cpp
--- old/libfilezilla-0.37.1/lib/string.cpp      2021-08-09 11:27:24.000000000 
+0200
+++ new/libfilezilla-0.37.2/lib/string.cpp      2022-04-29 15:57:34.000000000 
+0200
@@ -338,11 +338,11 @@
 #if FZ_WINDOWS
                wchar_t const* const in_p = in.data();
                BOOL usedDefault = FALSE;
-               int const len = WideCharToMultiByte(CP_ACP, 0, in_p, 
static_cast<int>(in.size()), nullptr, 0, nullptr, &usedDefault);
+               int const len = WideCharToMultiByte(CP_ACP, 
WC_NO_BEST_FIT_CHARS, in_p, static_cast<int>(in.size()), nullptr, 0, nullptr, 
&usedDefault);
                if (len > 0 && !usedDefault) {
                        ret.resize(len);
                        char* out_p = ret.data();
-                       WideCharToMultiByte(CP_ACP, 0, in_p, 
static_cast<int>(in.size()), out_p, len, nullptr, nullptr);
+                       WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, in_p, 
static_cast<int>(in.size()), out_p, len, nullptr, nullptr);
                }
 #else
                size_t start = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfilezilla-0.37.1/lib/tls_layer_impl.cpp 
new/libfilezilla-0.37.2/lib/tls_layer_impl.cpp
--- old/libfilezilla-0.37.1/lib/tls_layer_impl.cpp      2022-04-01 
14:35:07.000000000 +0200
+++ new/libfilezilla-0.37.2/lib/tls_layer_impl.cpp      2022-04-29 
15:57:34.000000000 +0200
@@ -1671,12 +1671,10 @@
                logger_.log(logmsg::error, fztranslate("The server's hostname 
does not match the certificate's hostname"));
                status &= ~GNUTLS_CERT_UNEXPECTED_OWNER;
        }
-#ifdef GNUTLS_CERT_MISSING_OCSP_STATUS
        if (status & GNUTLS_CERT_MISSING_OCSP_STATUS) {
                logger_.log(logmsg::error, fztranslate("The certificate 
requires the server to include an OCSP status in its response, but the OCSP 
status is missing."));
                status &= ~GNUTLS_CERT_MISSING_OCSP_STATUS;
        }
-#endif
        if (status) {
                if (status == GNUTLS_CERT_INVALID) {
                        logger_.log(logmsg::error, fztranslate("Received 
certificate chain could not be verified."));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libfilezilla-0.37.1/lib/windows/security_descriptor_builder.cpp 
new/libfilezilla-0.37.2/lib/windows/security_descriptor_builder.cpp
--- old/libfilezilla-0.37.1/lib/windows/security_descriptor_builder.cpp 
2021-09-29 14:07:07.000000000 +0200
+++ new/libfilezilla-0.37.2/lib/windows/security_descriptor_builder.cpp 
2022-04-29 15:57:34.000000000 +0200
@@ -99,7 +99,7 @@
        impl_->rights_[e] = rights;
 }
 
-ACL* security_descriptor_builder::get_acl()
+ACL* security_descriptor_builder::get_acl(sdb_flags f)
 {
        if (impl_->acl_) {
                return impl_->acl_.get();
@@ -115,7 +115,8 @@
        if (InitializeAcl(acl.get(), needed, ACL_REVISION)) {
                for (auto it = impl_->rights_.cbegin(); acl && it != 
impl_->rights_.cend(); ++it) {
                        auto sid = impl_->get_sid(it->first);
-                       if (!sid || !AddAccessAllowedAce(acl.get(), 
ACL_REVISION, it->second, sid.get())) {
+                       DWORD flags = (f & sdb_flags::inheritable) ? 
(CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE) : 0;
+                       if (!sid || !AddAccessAllowedAceEx(acl.get(), 
ACL_REVISION, flags, it->second, sid.get())) {
                                return {};
                        }
                }
@@ -124,6 +125,7 @@
 
        if (impl_->acl_) {
                InitializeSecurityDescriptor(&impl_->sd_, 
SECURITY_DESCRIPTOR_REVISION);
+               SetSecurityDescriptorControl(&impl_->sd_, SE_DACL_PROTECTED, (f 
& sdb_flags::inherit_from_parent) ? 0 : SE_DACL_PROTECTED);
                SetSecurityDescriptorDacl(&impl_->sd_, TRUE, impl_->acl_.get(), 
FALSE);
                SetSecurityDescriptorOwner(&impl_->sd_, impl_->user_->User.Sid, 
FALSE);
                SetSecurityDescriptorGroup(&impl_->sd_, NULL, FALSE);
@@ -133,9 +135,9 @@
        return impl_->acl_.get();
 }
 
-SECURITY_DESCRIPTOR* security_descriptor_builder::get_sd()
+SECURITY_DESCRIPTOR* security_descriptor_builder::get_sd(sdb_flags f)
 {
-       if (!get_acl()) {
+       if (!get_acl(f)) {
                return nullptr;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libfilezilla-0.37.1/lib/windows/security_descriptor_builder.hpp 
new/libfilezilla-0.37.2/lib/windows/security_descriptor_builder.hpp
--- old/libfilezilla-0.37.1/lib/windows/security_descriptor_builder.hpp 
2021-09-29 14:07:07.000000000 +0200
+++ new/libfilezilla-0.37.2/lib/windows/security_descriptor_builder.hpp 
2022-04-29 15:57:34.000000000 +0200
@@ -9,6 +9,25 @@
 #include <memory>
 
 namespace fz {
+enum class sdb_flags : unsigned
+{
+       none = 0,
+       inherit_from_parent = 0x1, // ACLs from parent can be inherited
+       inheritable = 0x2, // Allos ACLs to be inherited by children
+};
+inline bool operator&(sdb_flags lhs, sdb_flags rhs) {
+       return (static_cast<std::underlying_type_t<sdb_flags>>(lhs) & 
static_cast<std::underlying_type_t<sdb_flags>>(rhs)) != 0;
+}
+inline sdb_flags operator|(sdb_flags lhs, sdb_flags rhs)
+{
+       return 
static_cast<sdb_flags>(static_cast<std::underlying_type_t<sdb_flags>>(lhs) | 
static_cast<std::underlying_type_t<sdb_flags>>(rhs));
+}
+inline sdb_flags& operator|=(sdb_flags& lhs, sdb_flags rhs)
+{
+       lhs = lhs | rhs;
+       return lhs;
+}
+
 class security_descriptor_builder final
 {
 public:
@@ -25,8 +44,8 @@
 
        void add(entity e, DWORD rights = GENERIC_ALL | STANDARD_RIGHTS_ALL | 
SPECIFIC_RIGHTS_ALL);
 
-       ACL* get_acl();
-       SECURITY_DESCRIPTOR* get_sd();
+       ACL* get_acl(sdb_flags f);
+       SECURITY_DESCRIPTOR* get_sd(sdb_flags f);
 
 private:
        struct impl;

Reply via email to