Hello community,

here is the log from the commit of package uftpd for openSUSE:Factory checked 
in at 2018-07-06 10:42:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/uftpd (Old)
 and      /work/SRC/openSUSE:Factory/.uftpd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "uftpd"

Fri Jul  6 10:42:14 2018 rev:2 rq:620668 version:2.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/uftpd/uftpd.changes      2018-06-29 
22:36:15.266009424 +0200
+++ /work/SRC/openSUSE:Factory/.uftpd.new/uftpd.changes 2018-07-06 
10:42:20.099230511 +0200
@@ -1,0 +2,9 @@
+Wed Jul  4 15:20:38 UTC 2018 - mar...@gmx.de
+
+- Update to version 2.6
+  Fixes
+  * Issue #16: 100% CPU when client session exits
+  * Add missing include file for `gettimeofday()`
+  * Flush stdout logging when running in the foreground
+
+-------------------------------------------------------------------

Old:
----
  uftpd-2.5.tar.gz

New:
----
  uftpd-2.6.tar.gz

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

Other differences:
------------------
++++++ uftpd.spec ++++++
--- /var/tmp/diff_new_pack.TgoElx/_old  2018-07-06 10:42:20.547229978 +0200
+++ /var/tmp/diff_new_pack.TgoElx/_new  2018-07-06 10:42:20.547229978 +0200
@@ -1,6 +1,7 @@
 #
 # spec file for package uftpd
 #
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2018, Martin Hauke <mar...@gmx.de>
 #
 # All modifications and additions to the file contributed by third parties
@@ -17,7 +18,7 @@
 
 
 Name:           uftpd
-Version:        2.5
+Version:        2.6
 Release:        0
 Summary:        The no nonsense TFTP/FTP server
 License:        ISC

++++++ uftpd-2.5.tar.gz -> uftpd-2.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uftpd-2.5/ChangeLog.md new/uftpd-2.6/ChangeLog.md
--- old/uftpd-2.5/ChangeLog.md  2018-06-06 21:57:05.000000000 +0200
+++ new/uftpd-2.6/ChangeLog.md  2018-07-03 17:32:03.000000000 +0200
@@ -3,6 +3,16 @@
 
 All notable changes to the project are documented in this file.
 
+[v2.6][UNRELEASED]
+------------------
+
+Bug fix release.
+
+### Fixes
+- Issue #16: 100% CPU when client session exits
+- Add missing include file for `gettimeofday()`
+- Flush stdout logging when running in the foreground
+
 
 [v2.5][] - 2018-06-06
 ---------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uftpd-2.5/configure.ac new/uftpd-2.6/configure.ac
--- old/uftpd-2.5/configure.ac  2018-06-06 21:57:05.000000000 +0200
+++ new/uftpd-2.6/configure.ac  2018-07-03 17:32:03.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([uftpd], [2.5], [https://github.com/troglobit/uftpd/issues])
+AC_INIT([uftpd], [2.6], [https://github.com/troglobit/uftpd/issues])
 AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
 AM_SILENT_RULES([yes])
 
@@ -12,7 +12,8 @@
 
 # Configuration.
 AC_HEADER_STDC
-AC_CHECK_FUNCS(strstr getopt getsubopt)
+AC_CHECK_HEADERS(sys/time.h)
+AC_CHECK_FUNCS(strstr getopt getsubopt gettimeofday)
 
 # Check for uint[8,16,32]_t
 AC_TYPE_UINT8_T
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uftpd-2.5/debian/changelog 
new/uftpd-2.6/debian/changelog
--- old/uftpd-2.5/debian/changelog      2018-06-06 21:57:05.000000000 +0200
+++ new/uftpd-2.6/debian/changelog      2018-07-03 17:32:03.000000000 +0200
@@ -1,3 +1,11 @@
+uftpd (2.6) unstable; urgency=medium
+
+  * Bug fix release
+  * Really fix 100% CPU issue, take two.  Some clients managed to trigger
+    a bug caused by calling `uev_exit()` twice on client session exit
+
+ -- Joachim Nilsson <troglo...@gmail.com>  Tue, 03 Jul 2018 17:14:00 +0200
+
 uftpd (2.5) unstable; urgency=critical
 
   * Really fix 100% CPU issue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uftpd-2.5/src/common.c new/uftpd-2.6/src/common.c
--- old/uftpd-2.5/src/common.c  2018-06-06 21:57:05.000000000 +0200
+++ new/uftpd-2.6/src/common.c  2018-07-03 17:32:03.000000000 +0200
@@ -280,13 +280,10 @@
 
 int del_session(ctrl_t *ctrl, int isftp)
 {
-       uev_ctx_t *ctx;
-
        DBG("%sFTP Client session ended.", isftp ? "": "T" );
 
        if (!ctrl)
                return -1;
-       ctx = ctrl->ctx;
 
        if (isftp && ctrl->sd > 0) {
                shutdown(ctrl->sd, SHUT_RDWR);
@@ -310,9 +307,6 @@
                free(ctrl->ctx);
        free(ctrl);
 
-       if (!inetd)
-               return uev_exit(ctx);
-
        return 0;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uftpd-2.5/src/ftpcmd.c new/uftpd-2.6/src/ftpcmd.c
--- old/uftpd-2.5/src/ftpcmd.c  2018-06-06 21:57:05.000000000 +0200
+++ new/uftpd-2.6/src/ftpcmd.c  2018-07-03 17:32:03.000000000 +0200
@@ -17,6 +17,9 @@
 
 #include "uftpd.h"
 #include <arpa/ftp.h>
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 
 typedef struct {
        char *command;
@@ -1501,6 +1504,7 @@
 
 static void child_exit(uev_t *w, void *arg, int events)
 {
+       DBG("Child exiting ...");
        uev_exit(w->ctx);
 }
 
@@ -1519,6 +1523,7 @@
        uev_timer_set(&ctrl->timeout_watcher, INACTIVITY_TIMER, 0);
 
        if (recv_msg(w->fd, ctrl->buf, ctrl->bufsz, &command, &argument)) {
+               DBG("Short read, exiting.");
                uev_exit(ctrl->ctx);
                return;
        }
@@ -1601,6 +1606,7 @@
        INFO("Client connection from %s", ctrl->clientaddr);
        ftp_command(ctrl);
 
+       DBG("Client exiting, bye");
        exit(del_session(ctrl, 1));
 fail:
        free(ctrl);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uftpd-2.5/src/log.c new/uftpd-2.6/src/log.c
--- old/uftpd-2.5/src/log.c     2018-06-06 21:57:05.000000000 +0200
+++ new/uftpd-2.6/src/log.c     2018-07-03 17:32:03.000000000 +0200
@@ -51,6 +51,7 @@
                if (loglevel == LOG_DEBUG)
                        fprintf(file, "%d> ", getpid());
                vfprintf(file, fmt, args);
+               fflush(file);
        }
         va_end(args);
 }


Reply via email to