Hello community,

here is the log from the commit of package lftp for openSUSE:Factory checked in 
at 2018-02-28 20:03:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lftp (Old)
 and      /work/SRC/openSUSE:Factory/.lftp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lftp"

Wed Feb 28 20:03:01 2018 rev:70 rq:580923 version:4.8.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/lftp/lftp.changes        2017-11-13 
14:07:12.999382503 +0100
+++ /work/SRC/openSUSE:Factory/.lftp.new/lftp.changes   2018-02-28 
20:03:03.555253065 +0100
@@ -1,0 +2,7 @@
+Wed Feb 28 10:57:02 UTC 2018 - psim...@suse.com
+
+- fix-zero-byte-file-upload-via-ssl.patch: fix a bug that caused
+  lftp to break the TLS protocol and lose the connection when
+  trying to upload a 0 byte length file. [bsc#1079168]
+
+-------------------------------------------------------------------

New:
----
  fix-zero-byte-file-upload-via-ssl.patch

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

Other differences:
------------------
++++++ lftp.spec ++++++
--- /var/tmp/diff_new_pack.jb7Flt/_old  2018-02-28 20:03:05.759173321 +0100
+++ /var/tmp/diff_new_pack.jb7Flt/_new  2018-02-28 20:03:05.763173177 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package lftp
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2012 Pascal Bleser <pascal.ble...@opensuse.org>
 #
 # All modifications and additions to the file contributed by third parties
@@ -29,6 +29,8 @@
 Source3:        http://lftp.yar.ru/ftp/%{name}-%{version}.tar.xz.asc
 # PATCH-FEATURE-OPENSUSE lftp-ssl-cipher.patch pgaj...@suse.cz -- use stronger 
cipher [bnc#857148]
 Patch0:         lftp-default-ssl-cipher.patch
+# PATCH-FIX-UPSTREAM fix-for-upstream-sources.patch bsc#1079168
+Patch1:         
https://github.com/lavv17/lftp/commit/b934dbba0cb3.patch#/fix-zero-byte-file-upload-via-ssl.patch
 BuildRequires:  gcc-c++
 BuildRequires:  libstdc++-devel
 BuildRequires:  libtool

++++++ fix-zero-byte-file-upload-via-ssl.patch ++++++
>From b934dbba0cb3a2b367549d0e17131538b90acbc5 Mon Sep 17 00:00:00 2001
From: "Alexander V. Lukyanov" <lavv...@gmail.com>
Date: Tue, 20 Feb 2018 21:38:30 +0300
Subject: [PATCH] BufferSSL: handshake ssl even if we have no data to write
 (fix #420)

---
 src/buffer_ssl.cc | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/buffer_ssl.cc b/src/buffer_ssl.cc
index 5f466bd2..9e701c22 100644
--- a/src/buffer_ssl.cc
+++ b/src/buffer_ssl.cc
@@ -34,13 +34,25 @@ int IOBufferSSL::Do()
    if(Done() || Error())
       return m;
 
-   if(mode==PUT && Size()==0 && ssl->handshake_done && !eof)
-      return m;
-
-   // cannot use want_mask before trying to read/write, since ssl can be shared
-   if(!ssl->handshake_done || eof || Ready(ssl->fd,dir_mask()))
-      m|=super::Do();
-
+   if(mode==PUT && Size()==0)
+   {
+      // nothing to write, but may need to do handshake
+      if(!ssl->handshake_done)
+      {
+        if(Put_LL("",0)<0)
+           return MOVED;
+        if(ssl->handshake_done && eof)
+           ssl->shutdown();
+      }
+      if(ssl->handshake_done && !eof)
+        return m;
+   }
+   else
+   {
+      // cannot use want_mask before trying to read/write, since ssl can be 
shared
+      if(!ssl->handshake_done || eof || Ready(ssl->fd,dir_mask()))
+        m|=super::Do();
+   }
    Block(ssl->fd,block_mask());
    return m;
 }



Reply via email to