Hello community,

here is the log from the commit of package nmap for openSUSE:Factory checked in 
at 2019-07-31 14:28:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nmap (Old)
 and      /work/SRC/openSUSE:Factory/.nmap.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nmap"

Wed Jul 31 14:28:12 2019 rev:61 rq:719810 version:7.70

Changes:
--------
--- /work/SRC/openSUSE:Factory/nmap/nmap.changes        2019-05-03 
22:48:10.820010783 +0200
+++ /work/SRC/openSUSE:Factory/.nmap.new.4126/nmap.changes      2019-07-31 
14:28:14.002154145 +0200
@@ -1,0 +2,6 @@
+Tue Jul 30 10:28:34 UTC 2019 - Kristyna Streitova <kstreit...@suse.com>
+
+- add nmap-7.70-fix_infinite_loop.patch to fix infinite loop in
+  tls-alpn when server is forcing a protocol [bsc#1143277]
+
+-------------------------------------------------------------------

New:
----
  nmap-7.70-fix_infinite_loop.patch

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

Other differences:
------------------
++++++ nmap.spec ++++++
--- /var/tmp/diff_new_pack.fOZDBW/_old  2019-07-31 14:28:15.138152050 +0200
+++ /var/tmp/diff_new_pack.fOZDBW/_new  2019-07-31 14:28:15.142152044 +0200
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -41,6 +41,7 @@
 Patch3:         su-to-zenmap.patch
 Patch4:         nmap-ncat-skip-network-tests.patch
 Patch5:         nmap-7.70-CVE-2018-15173_pcre_limits.patch
+Patch6:         nmap-7.70-fix_infinite_loop.patch
 BuildRequires:  dos2unix
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
@@ -123,6 +124,7 @@
 %endif
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
 
 # use system provided libraries
 rm -rf libpcap libpcre macosx mswin32

++++++ nmap-7.70-fix_infinite_loop.patch ++++++
>From 3b8b6516a7697d8b6d4cd87e253daa369fcdbf2a Mon Sep 17 00:00:00 2001
From: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
Date: Mon, 14 May 2018 16:11:02 +0000
Subject: [PATCH] Fix infinite loop in tls-alpn when server is forcing a
 protocol.

---
 scripts/tls-alpn.nse | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/scripts/tls-alpn.nse b/scripts/tls-alpn.nse
index 307e1572c3..3f6387a2f5 100644
--- a/scripts/tls-alpn.nse
+++ b/scripts/tls-alpn.nse
@@ -112,13 +112,13 @@ local check_alpn = function(response)
 
   if record.type == "handshake" and record.body[1].type == "server_hello" then
     if record.body[1].extensions == nil then
-      stdnse.debug1("Server does not support TLS ALPN extension.")
+      stdnse.debug1("Server did not return TLS ALPN extension.")
       return nil
     end
     local results = {}
     local alpndata = record.body[1].extensions[ALPN_NAME]
     if alpndata == nil then
-      stdnse.debug1("Server does not support TLS ALPN extension.")
+      stdnse.debug1("Server did not return TLS ALPN extension.")
       return nil
     end
     -- Parse data
@@ -185,26 +185,26 @@ action = function(host, port)
       local result = check_alpn(response)
       if not result then
         stdnse.debug1("None of %d protocols chosen", #alpn_protos)
-        break
+        goto ALPN_DONE
       end
       for i, p in ipairs(result) do
         if i > 1 then
           stdnse.verbose1("Server violates RFC: sent additional protocol %s", 
p)
-        end
-        chosen[#chosen+1] = p
-        if not find_and_remove(alpn_protos, p) then
-          stdnse.debug1("Chosen ALPN protocol %s was not offered", p)
-          if stdnse.contains(chosen, p) then
-            stdnse.debug1("Server is forcing %s", p)
-            break
+        else
+          chosen[#chosen+1] = p
+          if not find_and_remove(alpn_protos, p) then
+            stdnse.debug1("Chosen ALPN protocol %s was not offered", p)
+            -- Server is forcing this protocol, no need to continue offering.
+            goto ALPN_DONE
           end
         end
       end
     else
       stdnse.debug1("Client hello failed with %d protocols", #alpn_protos)
-      break
+      goto ALPN_DONE
     end
   end
+  ::ALPN_DONE::
   if next(chosen) then
     return chosen
   end


Reply via email to