Hello community,

here is the log from the commit of package irssi for openSUSE:Factory checked 
in at 2017-10-23 16:52:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/irssi (Old)
 and      /work/SRC/openSUSE:Factory/.irssi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "irssi"

Mon Oct 23 16:52:24 2017 rev:47 rq:535800 version:1.0.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/irssi/irssi.changes      2017-07-08 
12:35:51.982039365 +0200
+++ /work/SRC/openSUSE:Factory/.irssi.new/irssi.changes 2017-10-23 
16:52:56.529666656 +0200
@@ -1,0 +2,25 @@
+Sun Oct 22 13:46:51 UTC 2017 - [email protected]
+
+- update to 1.0.5 (boo#1064540)
+  - Fix missing -sasl_method '' in /NETWORK (#718, #719).
+  - Fix incorrect restoration of term state when hitting SUSP
+    inside screen (#737, #733).
+  - Fix out of bounds read when compressing colour
+    sequences. Found by Hanno Böck (GL#12, GL!18). CVE-2017-15228
+  - Fix use after free condition during a race condition when
+    waiting on channel sync during a rejoin (GL#13, GL!19).
+    CVE-2017-15227
+  - Fix null pointer dereference when parsing certain malformed
+    CTCP DCC messages (GL#14, GL!20).
+    CVE-2017-15721
+  - Fix crash due to null pointer dereference when failing to
+    split messages due to overlong nick or target (GL#15, GL!21).
+    CVE-2017-15723
+  - Fix out of bounds read when trying to skip a safe channel ID
+    without verifying that the ID is long enough (GL#16, GL!22).
+    CVE-2017-15722
+  - Fix return of random memory when inet_ntop failed (#769).
+  - Minor statusbar help update. By Robert Bisewski (#758,
+    #763).
+
+-------------------------------------------------------------------

Old:
----
  irssi-1.0.4.tar.xz
  irssi-1.0.4.tar.xz.asc

New:
----
  irssi-1.0.5.tar.xz
  irssi-1.0.5.tar.xz.asc

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

Other differences:
------------------
++++++ irssi.spec ++++++
--- /var/tmp/diff_new_pack.8HpLH2/_old  2017-10-23 16:52:57.301630527 +0200
+++ /var/tmp/diff_new_pack.8HpLH2/_new  2017-10-23 16:52:57.305630340 +0200
@@ -18,13 +18,13 @@
 
 %bcond_with socks
 Name:           irssi
-Version:        1.0.4
+Version:        1.0.5
 Release:        0
 #
 Summary:        Modular, Secure, and Well Designed IRC Client
+#
 License:        GPL-2.0+
 Group:          Productivity/Networking/IRC
-#
 Url:            http://www.irssi.org
 Source:         
https://github.com/irssi/irssi/releases/download/%{version}/irssi-%{version}.tar.xz
 Source1:        irssi.desktop

++++++ irssi-1.0.4.tar.xz -> irssi-1.0.5.tar.xz ++++++
++++ 1964 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/ChangeLog new/irssi-1.0.5/ChangeLog
--- old/irssi-1.0.4/ChangeLog   2017-07-05 21:25:31.000000000 +0200
+++ new/irssi-1.0.5/ChangeLog   2017-10-20 17:16:49.000000000 +0200
@@ -1,3 +1,53 @@
+commit 7a770022be9a77aeda7af4b7090fb780a23c3b4e
+Author: ailin-nemui <[email protected]>
+Date:   Fri Oct 20 17:15:30 2017 +0200
+
+    tag as 1.0.5
+
+commit eef318301421b0ade7f184543f7165df583744c2
+Author: ailin-nemui <[email protected]>
+Date:   Fri Oct 13 17:14:47 2017 +0200
+
+    Merge pull request #769 from horgh/horgh/error-check-server-connect
+    
+    Set host to an empty string on error
+
+commit 404eb0995e3b3ac87d59430250644827a421ed23
+Author: ailin-nemui <[email protected]>
+Date:   Sun Oct 8 18:50:19 2017 +0200
+
+    Merge pull request #763 from rbisewski/master
+    
+    Improvements to statusbar documentation and help text.
+
+commit dd53f3fc9601e3d6a07dffe85b985f309a4e87a1
+Author: ailin-nemui <[email protected]>
+Date:   Thu Aug 10 16:49:32 2017 +0200
+
+    Merge pull request #737 from ailin-nemui/fix-733
+    
+    Revert "Merge pull request #452 from LemonBoy/terminfo-cup"
+
+commit d2ccea03d4bc7dd76b5cdf2df64e2416858fe014
+Author: ailin-nemui <[email protected]>
+Date:   Wed Jul 26 10:57:05 2017 +0200
+
+    Merge pull request #719 from LemonBoy/sasl-disable-none
+    
+    Setting sasl_mechanism to '' disables the auth
+
+commit 43e44d553d44e313003cee87e6ea5e24d68b84a1
+Author: Nei <[email protected]>
+Date:   Fri Oct 20 13:31:26 2017 +0000
+
+    Merge branch 'security' into 'master'
+    
+    Security
+    
+    Closes GL#12, GL#13, GL#14, GL#15, GL#16
+    
+    See merge request irssi/irssi!23
+
 commit 527c19803b56cc0ec84050ca63d992fbecadac1e
 Author: Ailin Nemui <[email protected]>
 Date:   Wed Jul 5 17:12:30 2017 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/NEWS new/irssi-1.0.5/NEWS
--- old/irssi-1.0.4/NEWS        2017-07-05 21:20:43.000000000 +0200
+++ new/irssi-1.0.5/NEWS        2017-10-20 17:16:43.000000000 +0200
@@ -1,3 +1,21 @@
+v1.0.5 2017-10-23  The Irssi team <[email protected]>
+       - Fix missing -sasl_method '' in /NETWORK (#718, #719).
+       - Fix incorrect restoration of term state when hitting SUSP
+          inside screen (#737, #733).
+       - Fix out of bounds read when compressing colour
+          sequences. Found by Hanno Böck (GL#12, GL!18).
+       - Fix use after free condition during a race condition when
+          waiting on channel sync during a rejoin (GL#13, GL!19).
+       - Fix null pointer dereference when parsing certain malformed
+          CTCP DCC messages (GL#14, GL!20).
+       - Fix crash due to null pointer dereference when failing to
+          split messages due to overlong nick or target (GL#15, GL!21).
+       - Fix out of bounds read when trying to skip a safe channel ID
+          without verifying that the ID is long enough (GL#16, GL!22).
+       - Fix return of random memory when inet_ntop failed (#769).
+       - Minor statusbar help update. By Robert Bisewski (#758,
+          #763).
+
 v1.0.4 2017-07-07  The Irssi team <[email protected]>
        - Fix null pointer dereference when parsing invalid timestamp (GL#10,
          GL!15). Reported by Brian 'geeknik' Carpenter.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/build-aux/compile new/irssi-1.0.5/build-aux/compile
--- old/irssi-1.0.4/build-aux/compile   2017-07-05 21:25:38.000000000 +0200
+++ new/irssi-1.0.5/build-aux/compile   2017-10-20 17:16:55.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -255,7 +255,8 @@
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -342,6 +343,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/build-aux/missing new/irssi-1.0.5/build-aux/missing
--- old/irssi-1.0.4/build-aux/missing   2017-07-05 21:25:38.000000000 +0200
+++ new/irssi-1.0.5/build-aux/missing   2017-10-20 17:16:55.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -210,6 +210,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/configure.ac new/irssi-1.0.5/configure.ac
--- old/irssi-1.0.4/configure.ac        2017-07-05 21:20:43.000000000 +0200
+++ new/irssi-1.0.5/configure.ac        2017-10-20 17:16:43.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(irssi, 1.0.4)
+AC_INIT(irssi, 1.0.5)
 AC_CONFIG_SRCDIR([src])
 AC_CONFIG_AUX_DIR(build-aux)
 AC_PREREQ(2.50)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/docs/help/in/network.in new/irssi-1.0.5/docs/help/in/network.in
--- old/irssi-1.0.4/docs/help/in/network.in     2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/docs/help/in/network.in     2017-10-20 17:16:43.000000000 
+0200
@@ -36,6 +36,7 @@
     -sasl_mechanism  Specifies the mechanism to use for the SASL 
authentication.
                      At the moment irssi only supports the 'plain' and the
                      'external' mechanisms.
+                     Use '' to disable the authentication.
     -sasl_username   Specifies the username to use during the SASL 
authentication.
     -sasl_password   Specifies the password to use during the SASL 
authentication.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/docs/help/in/statusbar.in 
new/irssi-1.0.5/docs/help/in/statusbar.in
--- old/irssi-1.0.4/docs/help/in/statusbar.in   2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/docs/help/in/statusbar.in   2017-10-20 17:16:34.000000000 
+0200
@@ -5,22 +5,33 @@
 
 %9Parameters:%9
 
-    ENABLE:       Enables the statusbar.
-    DISABLE:      Disabled the statusbar.
+    ENABLE:       Adds a statusbar to the list of statusbars.
+    DISABLE:      Removes a statusbar from the list. Note that for
+                  built-in statusbars they can be enabled again should the
+                  user wish to add back the default statusbars.
     RESET:        Restores the default statusbar configuration.
-    TYPE:         Identifies the type of statusbar.
-    PLACEMENT:    Identifies the placement of the statusbar.
-    POSITION:     Identifies the position of the statusbar.
-    VISIBLE:      Identifies the visibility of the statusbar.
-    ADD:          Adds a statusbar into the configuration.
-    REMOVE:       Removes a statusbar from the configuration.
+    TYPE:         Sets the type of statusbar, for each split window or only
+                  for the current root screen.
+    PLACEMENT:    Sets the placement of the statusbar, either at the top or
+                  the bottom of the screen.
+    POSITION:     Sets the position of the statusbar. Represented as a
+                  number, with 0 implying the first position.
+    VISIBLE:      Sets the visibility of the statusbar or item. If set to
+                  always it is visible on all screens, otherwise if set to
+                  inactive or active then it is only visible on inactive
+                  or active screens, respectively.
+    ADD:          Adds an item to the specified statusbar. It can be set to
+                  appear before/after another item and left/right aligned
+                  to a specified position on the screen.
+    REMOVE:       Removes an item from the specified statusbar.
 
-    The name of the statusbar; if no argument is given, the list of statusbars
-    will be displayed.
+    Where name refers to the name of the statusbar; if no argument is
+    given, the entire list of statusbars will be displayed.
 
 %9Description:%9
 
-    Modified the attributes of the statusbar.
+    Allows adjustment of the attributes and items of a statusbar, as well
+    as where it is located and whether or not it is currently visible.
 
 %9Examples:%9
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/docs/help/network new/irssi-1.0.5/docs/help/network
--- old/irssi-1.0.4/docs/help/network   2017-07-05 21:25:31.000000000 +0200
+++ new/irssi-1.0.5/docs/help/network   2017-10-20 17:16:49.000000000 +0200
@@ -37,6 +37,7 @@
     -sasl_mechanism  Specifies the mechanism to use for the SASL 
authentication.
                      At the moment irssi only supports the 'plain' and the
                      'external' mechanisms.
+                     Use '' to disable the authentication.
     -sasl_username   Specifies the username to use during the SASL 
authentication.
     -sasl_password   Specifies the password to use during the SASL 
authentication.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/docs/help/statusbar new/irssi-1.0.5/docs/help/statusbar
--- old/irssi-1.0.4/docs/help/statusbar 2017-07-05 21:25:31.000000000 +0200
+++ new/irssi-1.0.5/docs/help/statusbar 2017-10-20 17:16:49.000000000 +0200
@@ -13,22 +13,33 @@
 
 %9Parameters:%9
 
-    ENABLE:       Enables the statusbar.
-    DISABLE:      Disabled the statusbar.
+    ENABLE:       Adds a statusbar to the list of statusbars.
+    DISABLE:      Removes a statusbar from the list. Note that for
+                  built-in statusbars they can be enabled again should the
+                  user wish to add back the default statusbars.
     RESET:        Restores the default statusbar configuration.
-    TYPE:         Identifies the type of statusbar.
-    PLACEMENT:    Identifies the placement of the statusbar.
-    POSITION:     Identifies the position of the statusbar.
-    VISIBLE:      Identifies the visibility of the statusbar.
-    ADD:          Adds a statusbar into the configuration.
-    REMOVE:       Removes a statusbar from the configuration.
+    TYPE:         Sets the type of statusbar, for each split window or only
+                  for the current root screen.
+    PLACEMENT:    Sets the placement of the statusbar, either at the top or
+                  the bottom of the screen.
+    POSITION:     Sets the position of the statusbar. Represented as a
+                  number, with 0 implying the first position.
+    VISIBLE:      Sets the visibility of the statusbar or item. If set to
+                  always it is visible on all screens, otherwise if set to
+                  inactive or active then it is only visible on inactive
+                  or active screens, respectively.
+    ADD:          Adds an item to the specified statusbar. It can be set to
+                  appear before/after another item and left/right aligned
+                  to a specified position on the screen.
+    REMOVE:       Removes an item from the specified statusbar.
 
-    The name of the statusbar; if no argument is given, the list of statusbars
-    will be displayed.
+    Where name refers to the name of the statusbar; if no argument is
+    given, the entire list of statusbars will be displayed.
 
 %9Description:%9
 
-    Modified the attributes of the statusbar.
+    Allows adjustment of the attributes and items of a statusbar, as well
+    as where it is located and whether or not it is currently visible.
 
 %9Examples:%9
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/irssi-config.h new/irssi-1.0.5/irssi-config.h
--- old/irssi-1.0.4/irssi-config.h      2017-07-05 21:25:42.000000000 +0200
+++ new/irssi-1.0.5/irssi-config.h      2017-10-20 17:16:59.000000000 +0200
@@ -71,7 +71,7 @@
 #define PACKAGE_NAME "irssi"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "irssi 1.0.4"
+#define PACKAGE_STRING "irssi 1.0.5"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "irssi"
@@ -80,7 +80,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.4"
+#define PACKAGE_VERSION "1.0.5"
 
 /* printf()-format for uoff_t, eg. "u" or "lu" or "llu" */
 #define PRIuUOFF_T "lu"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/irssi-version.h new/irssi-1.0.5/irssi-version.h
--- old/irssi-1.0.4/irssi-version.h     2017-07-05 21:25:43.000000000 +0200
+++ new/irssi-1.0.5/irssi-version.h     2017-10-20 17:17:05.000000000 +0200
@@ -1,2 +1,2 @@
-#define IRSSI_VERSION_DATE 20170705
-#define IRSSI_VERSION_TIME 1712
+#define IRSSI_VERSION_DATE 20171020
+#define IRSSI_VERSION_TIME 1715
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/core/network.c new/irssi-1.0.5/src/core/network.c
--- old/irssi-1.0.4/src/core/network.c  2017-07-05 16:43:52.000000000 +0200
+++ new/irssi-1.0.5/src/core/network.c  2017-10-20 17:16:43.000000000 +0200
@@ -462,6 +462,7 @@
 
 int net_ip2host(IPADDR *ip, char *host)
 {
+       host[0] = '\0';
        return inet_ntop(ip->family, &ip->ip, host, MAX_IP_LEN) ? 0 : -1;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/core/recode.c new/irssi-1.0.5/src/core/recode.c
--- old/irssi-1.0.4/src/core/recode.c   2017-07-05 16:43:52.000000000 +0200
+++ new/irssi-1.0.5/src/core/recode.c   2017-10-20 17:16:34.000000000 +0200
@@ -198,7 +198,12 @@
        int n = 0;
        char **ret;
 
-       g_return_val_if_fail(str != NULL, NULL);
+       g_warn_if_fail(str != NULL);
+       if (str == NULL) {
+               ret = g_new(char *, 1);
+               ret[0] = NULL;
+               return ret;
+       }
 
        if (settings_get_bool("recode")) {
                to = find_conversion(server, target);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/fe-common/core/themes.c 
new/irssi-1.0.5/src/fe-common/core/themes.c
--- old/irssi-1.0.4/src/fe-common/core/themes.c 2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/src/fe-common/core/themes.c 2017-10-20 17:16:34.000000000 
+0200
@@ -587,7 +587,7 @@
                        /* a normal character */
                        g_string_append_c(str, *format);
                        format++;
-               } else {
+               } else if (format[1] != '\0') {
                        /* %format */
                        format++;
                        if (IS_OLD_FORMAT(*format, last_fg, last_bg)) {
@@ -614,6 +614,11 @@
                                        last_bg = '\0';
                        }
                        format++;
+               } else {
+                       /* % at end of string */
+                       format++;
+                       g_string_append_c(str, '%');
+                       g_string_append_c(str, '%');
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/fe-common/irc/fe-ircnet.c 
new/irssi-1.0.5/src/fe-common/irc/fe-ircnet.c
--- old/irssi-1.0.4/src/fe-common/irc/fe-ircnet.c       2017-07-05 
16:43:52.000000000 +0200
+++ new/irssi-1.0.5/src/fe-common/irc/fe-ircnet.c       2017-10-20 
17:16:43.000000000 +0200
@@ -163,11 +163,11 @@
 
        /* the validity of the parameters is checked in 
sig_server_setup_fill_chatnet */
        value = g_hash_table_lookup(optlist, "sasl_mechanism");
-       if (value != NULL && *value != '\0') rec->sasl_mechanism = 
g_strdup(value);
+       if (value != NULL) rec->sasl_mechanism = *value != '\0' ? 
g_strdup(value) : NULL;
        value = g_hash_table_lookup(optlist, "sasl_username");
-       if (value != NULL && *value != '\0') rec->sasl_username = 
g_strdup(value);
+       if (value != NULL) rec->sasl_username = *value != '\0' ? 
g_strdup(value) : NULL;
        value = g_hash_table_lookup(optlist, "sasl_password");
-       if (value != NULL && *value != '\0') rec->sasl_password = 
g_strdup(value);
+       if (value != NULL) rec->sasl_password = *value != '\0' ? 
g_strdup(value) : NULL;
 
        ircnet_create(rec);
        printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_NETWORK_ADDED, 
name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/fe-text/term-terminfo.c 
new/irssi-1.0.5/src/fe-text/term-terminfo.c
--- old/irssi-1.0.4/src/fe-text/term-terminfo.c 2017-07-05 16:57:53.000000000 
+0200
+++ new/irssi-1.0.5/src/fe-text/term-terminfo.c 2017-10-20 17:16:34.000000000 
+0200
@@ -629,6 +629,13 @@
 {
        terminfo_stop(current_term);
        kill(getpid(), SIGTSTP);
+       /* this call needs to stay here in case the TSTP was ignored,
+          because then we never see a CONT to call the restoration
+          code. On the other hand we also cannot remove the CONT
+          handler because then nothing would restore the screen when
+          Irssi is killed with TSTP/STOP from external. */
+       terminfo_cont(current_term);
+       irssi_redraw();
 }
 
 static int input_utf8(const unsigned char *buffer, int size, unichar *result)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/core/channel-events.c 
new/irssi-1.0.5/src/irc/core/channel-events.c
--- old/irssi-1.0.4/src/irc/core/channel-events.c       2017-07-05 
16:43:52.000000000 +0200
+++ new/irssi-1.0.5/src/irc/core/channel-events.c       2017-10-20 
17:16:34.000000000 +0200
@@ -37,7 +37,7 @@
                channel++; /* server didn't understand !channels */
 
        chanrec = channel_find(SERVER(server), channel);
-       if (chanrec == NULL && channel[0] == '!') {
+       if (chanrec == NULL && channel[0] == '!' && strlen(channel) > 6) {
                /* it probably replied with the full !channel name,
                   find the channel with the short name.. */
                chan2 = g_strdup_printf("!%s", channel+6);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/core/channels-query.c 
new/irssi-1.0.5/src/irc/core/channels-query.c
--- old/irssi-1.0.4/src/irc/core/channels-query.c       2017-07-05 
16:43:52.000000000 +0200
+++ new/irssi-1.0.5/src/irc/core/channels-query.c       2017-10-20 
17:16:34.000000000 +0200
@@ -119,21 +119,22 @@
        int n;
 
        rec = channel->server->chanqueries;
+       if (rec == NULL) return;
 
        /* remove channel from query lists */
        for (n = 0; n < CHANNEL_QUERIES; n++)
                rec->queries[n] = g_slist_remove(rec->queries[n], channel);
        rec->current_queries = g_slist_remove(rec->current_queries, channel);
 
-       query_check(channel->server);
+       if (!channel->server->disconnected)
+               query_check(channel->server);
 }
 
 static void sig_channel_destroyed(IRC_CHANNEL_REC *channel)
 {
        g_return_if_fail(channel != NULL);
 
-       if (IS_IRC_CHANNEL(channel) && !channel->server->disconnected &&
-           !channel->synced)
+       if (IS_IRC_CHANNEL(channel))
                query_remove_all(channel);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/core/irc-servers-setup.c 
new/irssi-1.0.5/src/irc/core/irc-servers-setup.c
--- old/irssi-1.0.4/src/irc/core/irc-servers-setup.c    2017-07-05 
16:43:52.000000000 +0200
+++ new/irssi-1.0.5/src/irc/core/irc-servers-setup.c    2017-10-20 
17:16:43.000000000 +0200
@@ -89,6 +89,8 @@
 
        /* Validate the SASL parameters filled by sig_chatnet_read() or 
cmd_network_add */
        conn->sasl_mechanism = SASL_MECHANISM_NONE;
+       conn->sasl_username = NULL;
+       conn->sasl_password = NULL;
 
        if (ircnet->sasl_mechanism != NULL) {
                if (!g_ascii_strcasecmp(ircnet->sasl_mechanism, "plain")) {
@@ -102,9 +104,7 @@
                                g_warning("The fields sasl_username and 
sasl_password are either missing or empty");
                }
                else if (!g_ascii_strcasecmp(ircnet->sasl_mechanism, 
"external")) {
-                               conn->sasl_mechanism = SASL_MECHANISM_EXTERNAL;
-                               conn->sasl_username = NULL;
-                               conn->sasl_password = NULL;
+                       conn->sasl_mechanism = SASL_MECHANISM_EXTERNAL;
                }
                else
                        g_warning("Unsupported SASL mechanism \"%s\" selected", 
ircnet->sasl_mechanism);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/core/irc-servers.c 
new/irssi-1.0.5/src/irc/core/irc-servers.c
--- old/irssi-1.0.4/src/irc/core/irc-servers.c  2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/src/irc/core/irc-servers.c  2017-10-20 17:16:34.000000000 
+0200
@@ -116,11 +116,14 @@
         * the code much simpler.  It's worth it.
         */
        len -= strlen(recoded_start) + strlen(recoded_end);
+       g_warn_if_fail(len > 0);
        if (len <= 0) {
                /* There is no room for anything. */
                g_free(recoded_start);
                g_free(recoded_end);
-               return NULL;
+               lines = g_new(char *, 1);
+               lines[0] = NULL;
+               return lines;
        }
 
        lines = recode_split(server, line, target, len, onspace);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/dcc/dcc-chat.c new/irssi-1.0.5/src/irc/dcc/dcc-chat.c
--- old/irssi-1.0.4/src/irc/dcc/dcc-chat.c      2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/src/irc/dcc/dcc-chat.c      2017-10-20 17:16:34.000000000 
+0200
@@ -66,6 +66,13 @@
         dcc->id = dcc_chat_get_new_id(nick);
 
        dcc_init_rec(DCC(dcc), server, chat, nick, arg);
+       if (dcc->module_data == NULL) {
+               /* failed to successfully init; TODO: change init_rec API */
+               g_free(dcc->id);
+               g_free(dcc);
+               return NULL;
+       }
+
         return dcc;
 }
 
@@ -471,6 +478,7 @@
                        /* We are accepting a passive DCC CHAT. */
                        dcc_chat_passive(dcc);
                }
+               cmd_params_free(free_arg);
                return;
        }
 
@@ -485,6 +493,11 @@
                cmd_param_error(CMDERR_NOT_CONNECTED);
 
        dcc = dcc_chat_create(server, NULL, nick, "chat");
+       if (dcc == NULL) {
+               cmd_params_free(free_arg);
+               g_warn_if_reached();
+               return;
+       }
 
        if (g_hash_table_lookup(optlist, "passive") == NULL) {
                /* Standard DCC CHAT... let's listen for incoming connections */
@@ -627,6 +640,9 @@
        }
        passive = paramcount == 4 && g_strcmp0(params[2], "0") == 0;
 
+       if (nick == NULL)
+               nick = "";
+
        dcc = DCC_CHAT(dcc_find_request(DCC_CHAT_TYPE, nick, NULL));
        if (dcc != NULL) {
                if (dcc_is_listening(dcc)) {
@@ -658,6 +674,11 @@
        }
 
        dcc = dcc_chat_create(server, chat, nick, params[0]);
+       if (dcc == NULL) {
+               g_strfreev(params);
+               g_warn_if_reached();
+               return;
+       }
        dcc->target = g_strdup(target);
        dcc->port = atoi(params[2]);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/dcc/dcc-get.c new/irssi-1.0.5/src/irc/dcc/dcc-get.c
--- old/irssi-1.0.4/src/irc/dcc/dcc-get.c       2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/src/irc/dcc/dcc-get.c       2017-10-20 17:16:34.000000000 
+0200
@@ -43,6 +43,12 @@
        dcc->fhandle = -1;
 
        dcc_init_rec(DCC(dcc), server, chat, nick, arg);
+       if (dcc->module_data == NULL) {
+               /* failed to successfully init; TODO: change API */
+               g_free(dcc);
+               return NULL;
+       }
+
         return dcc;
 }
 
@@ -430,9 +436,10 @@
        int p_id = -1;
        int passive = FALSE;
 
-       if (addr == NULL) {
+       if (addr == NULL)
                addr = "";
-       }
+       if (nick == NULL)
+               nick = "";
 
        /* SEND <file name> <address> <port> <size> [...] */
        /* SEND <file name> <address> 0 <size> <id> (DCC SEND passive protocol) 
*/
@@ -512,6 +519,12 @@
                dcc_destroy(DCC(dcc)); /* remove the old DCC */
 
        dcc = dcc_get_create(server, chat, nick, fname);
+       if (dcc == NULL) {
+               g_free(address);
+               g_free(fname);
+               g_warn_if_reached();
+               return;
+       }
        dcc->target = g_strdup(target);
 
        if (passive && port == 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/irssi-1.0.4/src/irc/dcc/dcc-send.c new/irssi-1.0.5/src/irc/dcc/dcc-send.c
--- old/irssi-1.0.4/src/irc/dcc/dcc-send.c      2017-07-05 16:43:52.000000000 
+0200
+++ new/irssi-1.0.5/src/irc/dcc/dcc-send.c      2017-10-20 17:16:34.000000000 
+0200
@@ -237,6 +237,12 @@
        dcc->queue = -1;
 
        dcc_init_rec(DCC(dcc), server, chat, nick, arg);
+       if (dcc->module_data == NULL) {
+               /* failed to successfully init; TODO: change API */
+               g_free(dcc);
+               return NULL;
+       }
+
         return dcc;
 }
 
@@ -417,6 +423,10 @@
 
        dcc = dcc_send_create(server, chat, target, str);
        g_free(str);
+       if (dcc == NULL) {
+               g_warn_if_reached();
+               return FALSE;
+       }
 
        dcc->handle = handle;
        dcc->port = port;




Reply via email to