commit lftp for openSUSE:Factory
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 - psimons@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
From b934dbba0cb3a2b367549d0e17131538b90acbc5 Mon Sep 17 00:00:00 2001 From: "Alexander V. Lukyanov"
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; }
participants (1)
-
root@hilbert.suse.de