From c578bd29bdd842f8c30bb98b2da35445e06f510441c0642dce6efb6f4472f602 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 6 Aug 2013 19:28:59 +0000 Subject: [PATCH 1/4] Accepting request 186142 from home:AndreasStieger:branches:X11:Utilities update to 0.63 [bnc#833567] CVE-2013-4852 OBS-URL: https://build.opensuse.org/request/show/186142 OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/putty?expand=0&rev=8 --- putty-0.62.tar.bz2 | 3 - putty-0.63.tar.gz | 3 + putty-01-werror.diff | 91 ---------------- putty-02-remove-gtk1.diff | 20 ---- putty-03-config.diff | 194 +++++++++++++++++----------------- putty-05-glib-deprecated.diff | 128 ---------------------- putty-06-gtk2-indivhdr.diff | 32 ------ putty.changes | 56 ++++++++++ putty.spec | 28 ++--- 9 files changed, 165 insertions(+), 390 deletions(-) delete mode 100644 putty-0.62.tar.bz2 create mode 100644 putty-0.63.tar.gz delete mode 100644 putty-01-werror.diff delete mode 100644 putty-02-remove-gtk1.diff delete mode 100644 putty-05-glib-deprecated.diff delete mode 100644 putty-06-gtk2-indivhdr.diff diff --git a/putty-0.62.tar.bz2 b/putty-0.62.tar.bz2 deleted file mode 100644 index ca39fb3..0000000 --- a/putty-0.62.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a34b007a67e9d863736ea11f10fbb6aa9fe9904d027605275ba22e61a4b5a33 -size 1378776 diff --git a/putty-0.63.tar.gz b/putty-0.63.tar.gz new file mode 100644 index 0000000..b9c26c1 --- /dev/null +++ b/putty-0.63.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81e8eaaf31be7d9a46b4f3fb80d1d9540776f142cd89d0a11f2f8082dc68f8b5 +size 1887913 diff --git a/putty-01-werror.diff b/putty-01-werror.diff deleted file mode 100644 index ce610fd..0000000 --- a/putty-01-werror.diff +++ /dev/null @@ -1,91 +0,0 @@ ---- - macosx/Makefile | 2 +- - mkfiles.pl | 6 +++--- - unix/Makefile.gtk | 2 +- - unix/Makefile.ux | 2 +- - unix/configure.ac | 2 +- - 5 files changed, 7 insertions(+), 7 deletions(-) - -Index: putty-0.62/macosx/Makefile -=================================================================== ---- putty-0.62.orig/macosx/Makefile -+++ putty-0.62/macosx/Makefile -@@ -104,7 +104,7 @@ - # - CC = $(TOOLPATH)gcc - --CFLAGS = -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ -+CFLAGS = -O2 -Wall -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ - -I../macosx/ - MLDFLAGS = -framework Cocoa - ULDFLAGS = -Index: putty-0.62/mkfiles.pl -=================================================================== ---- putty-0.62.orig/mkfiles.pl -+++ putty-0.62/mkfiles.pl -@@ -960,7 +960,7 @@ if (defined $makefiles{'gtk'}) { - "\n". - "unexport CFLAGS # work around a weird issue with krb5-config\n". - "\n". -- &splitline("CFLAGS = -O2 -Wall -Werror -g " . -+ &splitline("CFLAGS = -O2 -Wall -g " . - (join " ", map {"-I$dirpfx$_"} @srcdirs) . - " \$(shell \$(GTK_CONFIG) --cflags)"). - " -D _FILE_OFFSET_BITS=64\n". -@@ -1039,7 +1039,7 @@ if (defined $makefiles{'unix'}) { - "\n". - "unexport CFLAGS # work around a weird issue with krb5-config\n". - "\n". -- &splitline("CFLAGS = -O2 -Wall -Werror -g " . -+ &splitline("CFLAGS = -O2 -Wall -g " . - (join " ", map {"-I$dirpfx$_"} @srcdirs)). - " -D _FILE_OFFSET_BITS=64\n". - "ULDFLAGS = \$(LDFLAGS)\n". -@@ -1236,7 +1236,7 @@ if (defined $makefiles{'osx'}) { - print - "CC = \$(TOOLPATH)gcc\n". - "\n". -- &splitline("CFLAGS = -O2 -Wall -Werror -g " . -+ &splitline("CFLAGS = -O2 -Wall -g " . - (join " ", map {"-I$dirpfx$_"} @srcdirs))."\n". - "MLDFLAGS = -framework Cocoa\n". - "ULDFLAGS =\n". -Index: putty-0.62/unix/Makefile.gtk -=================================================================== ---- putty-0.62.orig/unix/Makefile.gtk -+++ putty-0.62/unix/Makefile.gtk -@@ -119,7 +119,7 @@ GTK_CONFIG = sh -c 'pkg-config gtk+-2.0 - - unexport CFLAGS # work around a weird issue with krb5-config - --CFLAGS = -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ -+CFLAGS = -O2 -Wall -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ - -I../macosx/ $(shell $(GTK_CONFIG) --cflags) -D _FILE_OFFSET_BITS=64 - XLDFLAGS = $(LDFLAGS) $(shell $(GTK_CONFIG) --libs) - ULDFLAGS = $(LDFLAGS) -Index: putty-0.62/unix/Makefile.ux -=================================================================== ---- putty-0.62.orig/unix/Makefile.ux -+++ putty-0.62/unix/Makefile.ux -@@ -111,7 +111,7 @@ CC = $(TOOLPATH)cc - - unexport CFLAGS # work around a weird issue with krb5-config - --CFLAGS = -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ -+CFLAGS = -O2 -Wall -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ - -I../macosx/ -D _FILE_OFFSET_BITS=64 - ULDFLAGS = $(LDFLAGS) - INSTALL=install -Index: putty-0.62/unix/configure.ac -=================================================================== ---- putty-0.62.orig/unix/configure.ac -+++ putty-0.62/unix/configure.ac -@@ -11,7 +11,7 @@ AC_CONFIG_HEADERS([uxconfig.h:uxconfig.i - AC_PROG_INSTALL - AC_PROG_CC - if test "X$GCC" = Xyes; then -- PUTTYCFLAGS="-Wall -Werror" -+ PUTTYCFLAGS="-Wall" - else - PUTTYCFLAGS="" - fi diff --git a/putty-02-remove-gtk1.diff b/putty-02-remove-gtk1.diff deleted file mode 100644 index 85158bf..0000000 --- a/putty-02-remove-gtk1.diff +++ /dev/null @@ -1,20 +0,0 @@ - -Remove GTK1 lines from configure.ac to be able to run autoreconf. - ---- - unix/configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: putty-0.62/unix/configure.ac -=================================================================== ---- putty-0.62.orig/unix/configure.ac -+++ putty-0.62/unix/configure.ac -@@ -32,7 +32,7 @@ AC_CHECK_HEADERS([utmpx.h sys/select.h], - #include ]) - - # Look for both GTK 1 and GTK 2. --AM_PATH_GTK([1.2.0], [gtk=1], [gtk=none]) -+gtk=none - AM_PATH_GTK_2_0([2.0.0], [gtk=2], []) - if test "$gtk" = "none"; then - all_targets="all-cli" diff --git a/putty-03-config.diff b/putty-03-config.diff index cbf4e8b..3d41e4b 100644 --- a/putty-03-config.diff +++ b/putty-03-config.diff @@ -7,13 +7,13 @@ --- settings.c | 51 ++++++++++++++++++++++++++++++++++----------------- unix/gtkwin.c | 2 +- - windows/windefs.c | 4 ++-- - 3 files changed, 37 insertions(+), 20 deletions(-) + windows/windefs.c | 2 +- + 3 files changed, 36 insertions(+), 19 deletions(-) -Index: putty-0.62/settings.c +Index: putty-0.63/settings.c =================================================================== ---- putty-0.62.orig/settings.c -+++ putty-0.62/settings.c +--- putty-0.63.orig/settings.c 2013-08-02 23:33:40.000000000 +0100 ++++ putty-0.63/settings.c 2013-08-06 19:22:06.000000000 +0100 @@ -12,8 +12,8 @@ static const struct keyvalwhere ciphernames[] = { { "aes", CIPHER_AES, -1, -1 }, @@ -24,70 +24,70 @@ Index: putty-0.62/settings.c { "arcfour", CIPHER_ARCFOUR, -1, -1 }, { "des", CIPHER_DES, -1, -1 } }; -@@ -611,7 +611,7 @@ void load_open_settings(void *sesskey, C +@@ -696,7 +696,7 @@ void load_open_settings(void *sesskey, C } - gppi(sesskey, "TCPNoDelay", 1, &cfg->tcp_nodelay); - gppi(sesskey, "TCPKeepalives", 0, &cfg->tcp_keepalives); -- gpps(sesskey, "TerminalType", "xterm", cfg->termtype, -+ gpps(sesskey, "TerminalType", "linux", cfg->termtype, - sizeof(cfg->termtype)); - gpps(sesskey, "TerminalSpeed", "38400,38400", cfg->termspeed, - sizeof(cfg->termspeed)); -@@ -716,10 +716,10 @@ void load_open_settings(void *sesskey, C - gppi(sesskey, "PassiveTelnet", 0, &cfg->passive_telnet); - gppi(sesskey, "BackspaceIsDelete", 1, &cfg->bksp_is_delete); - gppi(sesskey, "RXVTHomeEnd", 0, &cfg->rxvt_homeend); -- gppi(sesskey, "LinuxFunctionKeys", 0, &cfg->funky_type); -+ gppi(sesskey, "LinuxFunctionKeys", 1, &cfg->funky_type); - gppi(sesskey, "NoApplicationKeys", 0, &cfg->no_applic_k); - gppi(sesskey, "NoApplicationCursors", 0, &cfg->no_applic_c); -- gppi(sesskey, "NoMouseReporting", 0, &cfg->no_mouse_rep); -+ gppi(sesskey, "NoMouseReporting", 1, &cfg->no_mouse_rep); - gppi(sesskey, "NoRemoteResize", 0, &cfg->no_remote_resize); - gppi(sesskey, "NoAltScreen", 0, &cfg->no_alt_screen); - gppi(sesskey, "NoRemoteWinTitle", 0, &cfg->no_remote_wintitle); -@@ -740,9 +740,9 @@ void load_open_settings(void *sesskey, C - gppi(sesskey, "ApplicationKeypad", 0, &cfg->app_keypad); - gppi(sesskey, "NetHackKeypad", 0, &cfg->nethack_keypad); - gppi(sesskey, "AltF4", 1, &cfg->alt_f4); -- gppi(sesskey, "AltSpace", 0, &cfg->alt_space); -+ gppi(sesskey, "AltSpace", 1, &cfg->alt_space); - gppi(sesskey, "AltOnly", 0, &cfg->alt_only); -- gppi(sesskey, "ComposeKey", 0, &cfg->compose_key); -+ gppi(sesskey, "ComposeKey", 1, &cfg->compose_key); - gppi(sesskey, "CtrlAltKeys", 1, &cfg->ctrlaltkeys); - gppi(sesskey, "TelnetKey", 0, &cfg->telnet_keyboard); - gppi(sesskey, "TelnetRet", 1, &cfg->telnet_newline); -@@ -751,12 +751,12 @@ void load_open_settings(void *sesskey, C - gpps(sesskey, "Answerback", "PuTTY", cfg->answerback, - sizeof(cfg->answerback)); - gppi(sesskey, "AlwaysOnTop", 0, &cfg->alwaysontop); -- gppi(sesskey, "FullScreenOnAltEnter", 0, &cfg->fullscreenonaltenter); -+ gppi(sesskey, "FullScreenOnAltEnter", 1, &cfg->fullscreenonaltenter); - gppi(sesskey, "HideMousePtr", 0, &cfg->hide_mouseptr); - gppi(sesskey, "SunkenEdge", 0, &cfg->sunken_edge); - gppi(sesskey, "WindowBorder", 1, &cfg->window_border); -- gppi(sesskey, "CurType", 0, &cfg->cursor_type); -- gppi(sesskey, "BlinkCur", 0, &cfg->blink_cur); -+ gppi(sesskey, "CurType", 1, &cfg->cursor_type); -+ gppi(sesskey, "BlinkCur", 1, &cfg->blink_cur); - /* pedantic compiler tells me I can't use &cfg->beep as an int * :-) */ - gppi(sesskey, "Beep", 1, &cfg->beep); - gppi(sesskey, "BeepInd", 0, &cfg->beep_ind); -@@ -790,10 +790,10 @@ void load_open_settings(void *sesskey, C - gppi(sesskey, "CRImpliesLF", 0, &cfg->crhaslf); - gppi(sesskey, "DisableArabicShaping", 0, &cfg->arabicshaping); - gppi(sesskey, "DisableBidi", 0, &cfg->bidi); -- gppi(sesskey, "WinNameAlways", 1, &cfg->win_name_always); -+ gppi(sesskey, "WinNameAlways", 0, &cfg->win_name_always); - gpps(sesskey, "WinTitle", "", cfg->wintitle, sizeof(cfg->wintitle)); - gppi(sesskey, "TermWidth", 80, &cfg->width); -- gppi(sesskey, "TermHeight", 24, &cfg->height); -+ gppi(sesskey, "TermHeight", 25, &cfg->height); - gppfont(sesskey, "Font", &cfg->font); - gppi(sesskey, "FontQuality", FQ_DEFAULT, &cfg->font_quality); - gppi(sesskey, "FontVTMode", VT_UNICODE, (int *) &cfg->vtmode); -@@ -805,11 +805,28 @@ void load_open_settings(void *sesskey, C + gppi(sesskey, "TCPNoDelay", 1, conf, CONF_tcp_nodelay); + gppi(sesskey, "TCPKeepalives", 0, conf, CONF_tcp_keepalives); +- gpps(sesskey, "TerminalType", "xterm", conf, CONF_termtype); ++ gpps(sesskey, "TerminalType", "linux", conf, CONF_termtype); + gpps(sesskey, "TerminalSpeed", "38400,38400", conf, CONF_termspeed); + if (!gppmap(sesskey, "TerminalModes", conf, CONF_ttymodes)) { + /* This hardcodes a big set of defaults in any new saved +@@ -783,10 +783,10 @@ void load_open_settings(void *sesskey, C + gppi(sesskey, "PassiveTelnet", 0, conf, CONF_passive_telnet); + gppi(sesskey, "BackspaceIsDelete", 1, conf, CONF_bksp_is_delete); + gppi(sesskey, "RXVTHomeEnd", 0, conf, CONF_rxvt_homeend); +- gppi(sesskey, "LinuxFunctionKeys", 0, conf, CONF_funky_type); ++ gppi(sesskey, "LinuxFunctionKeys", 1, conf, CONF_funky_type); + gppi(sesskey, "NoApplicationKeys", 0, conf, CONF_no_applic_k); + gppi(sesskey, "NoApplicationCursors", 0, conf, CONF_no_applic_c); +- gppi(sesskey, "NoMouseReporting", 0, conf, CONF_no_mouse_rep); ++ gppi(sesskey, "NoMouseReporting", 1, conf, CONF_no_mouse_rep); + gppi(sesskey, "NoRemoteResize", 0, conf, CONF_no_remote_resize); + gppi(sesskey, "NoAltScreen", 0, conf, CONF_no_alt_screen); + gppi(sesskey, "NoRemoteWinTitle", 0, conf, CONF_no_remote_wintitle); +@@ -806,9 +806,9 @@ void load_open_settings(void *sesskey, C + gppi(sesskey, "ApplicationKeypad", 0, conf, CONF_app_keypad); + gppi(sesskey, "NetHackKeypad", 0, conf, CONF_nethack_keypad); + gppi(sesskey, "AltF4", 1, conf, CONF_alt_f4); +- gppi(sesskey, "AltSpace", 0, conf, CONF_alt_space); ++ gppi(sesskey, "AltSpace", 1, conf, CONF_alt_space); + gppi(sesskey, "AltOnly", 0, conf, CONF_alt_only); +- gppi(sesskey, "ComposeKey", 0, conf, CONF_compose_key); ++ gppi(sesskey, "ComposeKey", 1, conf, CONF_compose_key); + gppi(sesskey, "CtrlAltKeys", 1, conf, CONF_ctrlaltkeys); + gppi(sesskey, "TelnetKey", 0, conf, CONF_telnet_keyboard); + gppi(sesskey, "TelnetRet", 1, conf, CONF_telnet_newline); +@@ -816,12 +816,12 @@ void load_open_settings(void *sesskey, C + gppi(sesskey, "LocalEdit", AUTO, conf, CONF_localedit); + gpps(sesskey, "Answerback", "PuTTY", conf, CONF_answerback); + gppi(sesskey, "AlwaysOnTop", 0, conf, CONF_alwaysontop); +- gppi(sesskey, "FullScreenOnAltEnter", 0, conf, CONF_fullscreenonaltenter); ++ gppi(sesskey, "FullScreenOnAltEnter", 1, conf, CONF_fullscreenonaltenter); + gppi(sesskey, "HideMousePtr", 0, conf, CONF_hide_mouseptr); + gppi(sesskey, "SunkenEdge", 0, conf, CONF_sunken_edge); + gppi(sesskey, "WindowBorder", 1, conf, CONF_window_border); +- gppi(sesskey, "CurType", 0, conf, CONF_cursor_type); +- gppi(sesskey, "BlinkCur", 0, conf, CONF_blink_cur); ++ gppi(sesskey, "CurType", 1, conf, CONF_cursor_type); ++ gppi(sesskey, "BlinkCur", 1, conf, CONF_blink_cur); + /* pedantic compiler tells me I can't use conf, CONF_beep as an int * :-) */ + gppi(sesskey, "Beep", 1, conf, CONF_beep); + gppi(sesskey, "BeepInd", 0, conf, CONF_beep_ind); +@@ -855,10 +855,10 @@ void load_open_settings(void *sesskey, C + gppi(sesskey, "CRImpliesLF", 0, conf, CONF_crhaslf); + gppi(sesskey, "DisableArabicShaping", 0, conf, CONF_arabicshaping); + gppi(sesskey, "DisableBidi", 0, conf, CONF_bidi); +- gppi(sesskey, "WinNameAlways", 1, conf, CONF_win_name_always); ++ gppi(sesskey, "WinNameAlways", 0, conf, CONF_win_name_always); + gpps(sesskey, "WinTitle", "", conf, CONF_wintitle); + gppi(sesskey, "TermWidth", 80, conf, CONF_width); +- gppi(sesskey, "TermHeight", 24, conf, CONF_height); ++ gppi(sesskey, "TermHeight", 25, conf, CONF_height); + gppfont(sesskey, "Font", conf, CONF_font); + gppi(sesskey, "FontQuality", FQ_DEFAULT, conf, CONF_font_quality); + gppi(sesskey, "FontVTMode", VT_UNICODE, conf, CONF_vtmode); +@@ -870,11 +870,28 @@ void load_open_settings(void *sesskey, C for (i = 0; i < 22; i++) { static const char *const defaults[] = { @@ -119,44 +119,40 @@ Index: putty-0.62/settings.c + "170,170,170", /* white */ + "255,255,255", /* white bold */ }; - char buf[20], buf2[30]; + char buf[20], *buf2; int c0, c1, c2; -@@ -855,7 +872,7 @@ void load_open_settings(void *sesskey, C +@@ -922,7 +939,7 @@ void load_open_settings(void *sesskey, C * The empty default for LineCodePage will be converted later * into a plausible default for the locale. */ -- gpps(sesskey, "LineCodePage", "", cfg->line_codepage, -+ gpps(sesskey, "LineCodePage", "UTF-8", cfg->line_codepage, - sizeof(cfg->line_codepage)); - gppi(sesskey, "CJKAmbigWide", 0, &cfg->cjk_ambig_wide); - gppi(sesskey, "UTF8Override", 1, &cfg->utf8_override); -Index: putty-0.62/unix/gtkwin.c +- gpps(sesskey, "LineCodePage", "", conf, CONF_line_codepage); ++ gpps(sesskey, "LineCodePage", "UTF-8", conf, CONF_line_codepage); + gppi(sesskey, "CJKAmbigWide", 0, conf, CONF_cjk_ambig_wide); + gppi(sesskey, "UTF8Override", 1, conf, CONF_utf8_override); + gpps(sesskey, "Printer", "", conf, CONF_printer); +Index: putty-0.63/unix/gtkwin.c =================================================================== ---- putty-0.62.orig/unix/gtkwin.c -+++ putty-0.62/unix/gtkwin.c -@@ -145,7 +145,7 @@ FontSpec platform_default_fontspec(const +--- putty-0.63.orig/unix/gtkwin.c 2013-07-20 14:15:10.000000000 +0100 ++++ putty-0.63/unix/gtkwin.c 2013-08-06 19:22:45.000000000 +0100 +@@ -164,7 +164,7 @@ void connection_fatal(void *frontend, ch + FontSpec *platform_default_fontspec(const char *name) { - FontSpec ret; if (!strcmp(name, "Font")) -- strcpy(ret.name, "server:fixed"); -+ strcpy(ret.name, "client:Monospace 14"); +- return fontspec_new("server:fixed"); ++ return fontspec_new("client:Monospace 14"); else - *ret.name = '\0'; - return ret; -Index: putty-0.62/windows/windefs.c + return fontspec_new(""); + } +Index: putty-0.63/windows/windefs.c =================================================================== ---- putty-0.62.orig/windows/windefs.c -+++ putty-0.62/windows/windefs.c -@@ -10,10 +10,10 @@ FontSpec platform_default_fontspec(const +--- putty-0.63.orig/windows/windefs.c 2011-10-02 12:01:57.000000000 +0100 ++++ putty-0.63/windows/windefs.c 2013-08-06 19:23:22.000000000 +0100 +@@ -9,7 +9,7 @@ + FontSpec *platform_default_fontspec(const char *name) { - FontSpec ret; - if (!strcmp(name, "Font")) { -- strcpy(ret.name, "Courier New"); -+ strcpy(ret.name, "Lucida Console"); - ret.isbold = 0; - ret.charset = ANSI_CHARSET; -- ret.height = 10; -+ ret.height = 14; - } else { - ret.name[0] = '\0'; - } + if (!strcmp(name, "Font")) +- return fontspec_new("Courier New", 0, 10, ANSI_CHARSET); ++ return fontspec_new("Ludica Console", 0, 14, ANSI_CHARSET); + else + return fontspec_new("", 0, 0, 0); + } diff --git a/putty-05-glib-deprecated.diff b/putty-05-glib-deprecated.diff deleted file mode 100644 index 4594495..0000000 --- a/putty-05-glib-deprecated.diff +++ /dev/null @@ -1,128 +0,0 @@ - -g_strcasecmp and g_strncasecmp are deprecated in glib-2.32. - ---- - unix/gtkfont.c | 57 +++++++++++++++++++++++++++++++++++++-------------------- - 1 file changed, 37 insertions(+), 20 deletions(-) - -Index: putty-0.62/unix/gtkfont.c -=================================================================== ---- putty-0.62.orig/unix/gtkfont.c -+++ putty-0.62/unix/gtkfont.c -@@ -10,6 +10,8 @@ - */ - - #include -+#include -+#include - #include - #include - #include -@@ -524,21 +526,21 @@ static void x11font_enum_fonts(GtkWidget - style = p; - p += sprintf(p, "%s", components[2][0] ? components[2] : - "regular"); -- if (!g_strcasecmp(components[3], "i")) -+ if (!g_ascii_strcasecmp(components[3], "i")) - p += sprintf(p, " italic"); -- else if (!g_strcasecmp(components[3], "o")) -+ else if (!g_ascii_strcasecmp(components[3], "o")) - p += sprintf(p, " oblique"); -- else if (!g_strcasecmp(components[3], "ri")) -+ else if (!g_ascii_strcasecmp(components[3], "ri")) - p += sprintf(p, " reverse italic"); -- else if (!g_strcasecmp(components[3], "ro")) -+ else if (!g_ascii_strcasecmp(components[3], "ro")) - p += sprintf(p, " reverse oblique"); -- else if (!g_strcasecmp(components[3], "ot")) -+ else if (!g_ascii_strcasecmp(components[3], "ot")) - p += sprintf(p, " other-slant"); -- if (components[4][0] && g_strcasecmp(components[4], "normal")) -+ if (components[4][0] && g_ascii_strcasecmp(components[4], "normal")) - p += sprintf(p, " %s", components[4]); -- if (!g_strcasecmp(components[10], "m")) -+ if (!g_ascii_strcasecmp(components[10], "m")) - p += sprintf(p, " [M]"); -- if (!g_strcasecmp(components[10], "c")) -+ if (!g_ascii_strcasecmp(components[10], "c")) - p += sprintf(p, " [C]"); - if (components[5][0]) - p += sprintf(p, " %s", components[5]); -@@ -550,23 +552,23 @@ static void x11font_enum_fonts(GtkWidget - */ - p++; - stylekey = p; -- if (!g_strcasecmp(components[2], "medium") || -- !g_strcasecmp(components[2], "regular") || -- !g_strcasecmp(components[2], "normal") || -- !g_strcasecmp(components[2], "book")) -+ if (!g_ascii_strcasecmp(components[2], "medium") || -+ !g_ascii_strcasecmp(components[2], "regular") || -+ !g_ascii_strcasecmp(components[2], "normal") || -+ !g_ascii_strcasecmp(components[2], "book")) - weightkey = 0; -- else if (!g_strncasecmp(components[2], "demi", 4) || -- !g_strncasecmp(components[2], "semi", 4)) -+ else if (!g_ascii_strncasecmp(components[2], "demi", 4) || -+ !g_ascii_strncasecmp(components[2], "semi", 4)) - weightkey = 1; - else - weightkey = 2; -- if (!g_strcasecmp(components[3], "r")) -+ if (!g_ascii_strcasecmp(components[3], "r")) - slantkey = 0; -- else if (!g_strncasecmp(components[3], "r", 1)) -+ else if (!g_ascii_strncasecmp(components[3], "r", 1)) - slantkey = 2; - else - slantkey = 1; -- if (!g_strcasecmp(components[4], "normal")) -+ if (!g_ascii_strcasecmp(components[4], "normal")) - setwidthkey = 0; - else - setwidthkey = 1; -@@ -774,11 +776,16 @@ static int pangofont_check_desc_makes_se - - matched = FALSE; - for (i = 0; i < nfamilies; i++) { -- if (!g_strcasecmp(pango_font_family_get_name(families[i]), -- pango_font_description_get_family(desc))) { -+ gchar *a = g_utf8_strdown(pango_font_family_get_name(families[i]), -1); -+ gchar *b = g_utf8_strdown(pango_font_description_get_family(desc), -1); -+ if (a != NULL && b != NULL && strcmp(a, b) == 0) { -+ g_free(a); -+ g_free(b); - matched = TRUE; - break; - } -+ g_free(a); -+ g_free(b); - } - g_free(families); - -@@ -1375,6 +1382,7 @@ struct fontinfo_realname_find { - - static int strnullcasecmp(const char *a, const char *b) - { -+ gchar *p, *q; - int i; - - /* -@@ -1393,7 +1401,16 @@ static int strnullcasecmp(const char *a, - /* - * Otherwise, ordinary strcasecmp. - */ -- return g_strcasecmp(a, b); -+ p = g_utf8_strdown(a, -1); -+ q = g_utf8_strdown(b, -1); -+ if (p == NULL || q == NULL) { -+ fprintf(stderr, "%s\n", strerror(errno)); -+ abort(); -+ } -+ i = strcmp(p, q); -+ g_free(p); -+ g_free(q); -+ return i; - } - - static int fontinfo_realname_compare(void *av, void *bv) diff --git a/putty-06-gtk2-indivhdr.diff b/putty-06-gtk2-indivhdr.diff deleted file mode 100644 index fa2412a..0000000 --- a/putty-06-gtk2-indivhdr.diff +++ /dev/null @@ -1,32 +0,0 @@ ---- - unix/Makefile.in | 3 ++- - unix/gtkcols.h | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -Index: putty-0.62/unix/Makefile.in -=================================================================== ---- putty-0.62.orig/unix/Makefile.in -+++ putty-0.62/unix/Makefile.in -@@ -106,7 +106,8 @@ - CC = @CC@ - - CFLAGS = @CFLAGS@ @PUTTYCFLAGS@ @CPPFLAGS@ @DEFS@ @GTK_CFLAGS@ -I.././ \ -- -I../charset/ -I../windows/ -I../unix/ -I../macosx/ -+ -I../charset/ -I../windows/ -I../unix/ -I../macosx/ \ -+ -DGTK_DISABLE_SINGLE_INCLUDES - XLDFLAGS = @LDFLAGS@ @LIBS@ @GTK_LIBS@ - ULDFLAGS = @LDFLAGS@ @LIBS@ - INSTALL=@INSTALL@ -Index: putty-0.62/unix/gtkcols.h -=================================================================== ---- putty-0.62.orig/unix/gtkcols.h -+++ putty-0.62/unix/gtkcols.h -@@ -8,7 +8,7 @@ - #define COLUMNS_H - - #include --#include -+#include - - #ifdef __cplusplus - extern "C" { diff --git a/putty.changes b/putty.changes index 981d43a..6bb61f0 100644 --- a/putty.changes +++ b/putty.changes @@ -1,3 +1,59 @@ +------------------------------------------------------------------- +Tue Aug 6 19:09:06 UTC 2013 - andreas.stieger@gmx.de + +- update to 0.63 + * Security fix: prevent a nefarious SSH server or network attacker + from crashing PuTTY at startup in three different ways by + presenting a maliciously constructed public key and signature. + [bnc#833567] CVE-2013-4852 + * Security fix: PuTTY no longer retains the private half of users' + keys in memory by mistake after authenticating with them. + * Revamped the internal configuration storage system to remove all + fixed arbitrary limits on string lengths. In particular, there + should now no longer be an unreasonably small limit on the number + of port forwardings PuTTY can store. + * Port-forwarded TCP connections which close one direction before the + other should now be reliably supported, with EOF propagated + independently in the two directions. This also fixes some instances + of port-forwarding data corruption (if the corruption consisted of + losing data from the very end of the connection) and some instances + of PuTTY failing to close when the session is over (because it + wrongly thought a forwarding channel was still active when it was + not). + * The terminal emulation now supports xterm's bracketed paste mode + (allowing aware applications to tell the difference between typed + and pasted text, so that e.g. editors need not apply inappropriate + auto-indent). + * You can now choose to display bold text by both brightening the + foreground colour and changing the font, not just one or the other. + * PuTTYgen will now never generate a 2047-bit key when asked for 2048 + (or more generally n−1 bits when asked for n). + * Some updates to default settings: PuTTYgen now generates 2048-bit + keys by default (rather than 1024), and PuTTY defaults to UTF-8 + encoding and 2000 lines of scrollback (rather than ISO 8859-1 and + 200). + * Unix: PSCP and PSFTP now preserve the Unix file permissions, on + copies in both directions. + * Unix: dead keys and compose-character sequences are now supported. + * Unix: PuTTY and pterm now permit font fallback (where glyphs not + present in your selected font are automatically filled in from other + fonts on the system) even if you are using a server-side X11 font + rather than a Pango client-side one. + * Bug fixes too numerous to list, mostly resulting from running the + code through Coverity Scan which spotted an assortment of memory + and resource leaks, logic errors, and crashes in various circumstances. +- packaging changes: + * run make from base directory + * run tests + * remove putty-01-werror.diff + * remove putty-02-remove-gtk1.diff + * refresh putty-03-config.diff + * remove putty-05-glib-deprecated.diff + * remove putty-06-gtk2-indivhdr.diff + * remove autoconf calls and requirements + * package HTML documentation + * package LICENCE file + ------------------------------------------------------------------- Sun Dec 11 14:04:30 UTC 2011 - andreas.stieger@gmx.de diff --git a/putty.spec b/putty.spec index 403808d..c5014db 100644 --- a/putty.spec +++ b/putty.spec @@ -1,7 +1,7 @@ # # spec file for package putty # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,23 +17,16 @@ Name: putty -Version: 0.62 +Version: 0.63 Release: 0 Summary: GTK-based terminal emulator program License: MIT Group: System/X11/Utilities Url: http://www.chiark.greenend.org.uk/~sgtatham/putty/ - -Source: %name-%version.tar.bz2 -Patch1: putty-01-werror.diff -Patch2: putty-02-remove-gtk1.diff +Source: http://the.earth.li/~sgtatham/putty/latest/%{name}-%{version}.tar.gz Patch3: putty-03-config.diff -Patch4: putty-04-nodate.diff -Patch5: putty-05-glib-deprecated.diff -Patch6: putty-06-gtk2-indivhdr.diff +Patch4: putty-04-nodate.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: autoconf -BuildRequires: automake BuildRequires: gtk2-devel BuildRequires: krb5-devel @@ -44,23 +37,24 @@ serial console client. %prep %setup -q -%patch -P 1 -P 2 -P 3 -P 4 -P 5 -P 6 -p1 +%patch3 -p1 +%patch4 -p1 %build -pushd unix/; -autoreconf -fi; %configure make %{?_smp_mflags}; -popd; %install -pushd unix/; make install DESTDIR="%buildroot"; -popd; + +%check +make check %files %defattr(-,root,root) +%doc LICENCE %_bindir/* %doc %_mandir/man*/* +%doc doc/*.html %changelog From d30ea56c9f697e7f921f6c8bc7220eb7fa4f8eeefedba4ecf1fbb04a19faf552 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 6 Aug 2013 19:48:39 +0000 Subject: [PATCH 2/4] Give reason for patch removal, implement signature verification OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/putty?expand=0&rev=9 --- putty-0.63.tar.gz.RSA | Bin 0 -> 152 bytes putty.changes | 16 ++++++++++------ putty.keyring | 16 ++++++++++++++++ putty.spec | 12 +++++++++--- 4 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 putty-0.63.tar.gz.RSA create mode 100644 putty.keyring diff --git a/putty-0.63.tar.gz.RSA b/putty-0.63.tar.gz.RSA new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..cd59b03867c406a080928b180088870fa14f8a55a995d9f0be110598076b956b GIT binary patch literal 152 zcmV;J0B8S+0F?s;08#-l?(aFwz_c8$DFFgUPy_#1^Ill-{PZ^M;bEML3&#g~5bXd@26%1QEHcz2$0Y#hBC!0mD?>pc_q&+y($=uv%&dO|1L G`^!+8(@h-! literal 0 HcmV?d00001 diff --git a/putty.changes b/putty.changes index 6bb61f0..50b5f2c 100644 --- a/putty.changes +++ b/putty.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Aug 6 19:47:43 UTC 2013 - jengelh@inai.de + +- Do signature verification + ------------------------------------------------------------------- Tue Aug 6 19:09:06 UTC 2013 - andreas.stieger@gmx.de @@ -12,10 +17,10 @@ Tue Aug 6 19:09:06 UTC 2013 - andreas.stieger@gmx.de fixed arbitrary limits on string lengths. In particular, there should now no longer be an unreasonably small limit on the number of port forwardings PuTTY can store. - * Port-forwarded TCP connections which close one direction before the + * Forwarded TCP connections which close one direction before the other should now be reliably supported, with EOF propagated independently in the two directions. This also fixes some instances - of port-forwarding data corruption (if the corruption consisted of + of forwarding data corruption (if the corruption consisted of losing data from the very end of the connection) and some instances of PuTTY failing to close when the session is over (because it wrongly thought a forwarding channel was still active when it was @@ -45,11 +50,10 @@ Tue Aug 6 19:09:06 UTC 2013 - andreas.stieger@gmx.de - packaging changes: * run make from base directory * run tests - * remove putty-01-werror.diff - * remove putty-02-remove-gtk1.diff + * remove putty-01-werror.diff (currently not needed) + * remove putty-02-remove-gtk1.diff, putty-05-glib-deprecated.diff, + putty-06-gtk2-indivhdr.diff (no longer needed) * refresh putty-03-config.diff - * remove putty-05-glib-deprecated.diff - * remove putty-06-gtk2-indivhdr.diff * remove autoconf calls and requirements * package HTML documentation * package LICENCE file diff --git a/putty.keyring b/putty.keyring new file mode 100644 index 0000000..577e05b --- /dev/null +++ b/putty.keyring @@ -0,0 +1,16 @@ +pub 1024R/B41CAE29 2000-12-20 +uid PuTTY Releases (RSA) + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.19 (GNU/Linux) + +mQCNAzpA2ZYAAAEEAKxRyqIqZxKktdbrPo/OUj/4ij+yNIC8oBTVNgt3+NcAgFKI +lPxjRKkrNFMrmXPaKRLp8/TS5Z46nSgG44d58G/5clu7IVge2YlCpvoIfo3ute2U +UbBvXCJFVK5ePhNzQX8nGibmejxo8wF5CShyifhmoyfd96cf9u85zMC0HK4pAAUR +tDRQdVRUWSBSZWxlYXNlcyAoUlNBKSA8cHV0dHktYnVnc0BsaXN0cy50YXJ0YXJ1 +cy5vcmc+iQCVAwUQOkDZlu85zMC0HK4pAQG7XQP6AlJiPCmN7PMz92LhqNbK4B1Y +WtNCcDKz1wZZow2OrQW79SZ+I6RqWC/z/1YKIgYY30aE2UtY9OMUYlQ+I08rsYC4 +hNxNY4JvyyP9AT7wiJlpvdWtD590Z5DYwdSTeZg8w0N3NvCJ6m3ivFHiEZuJcZjd +cfPQziUxGjQi6HzG+sc= +=18Fm +-----END PGP PUBLIC KEY BLOCK----- diff --git a/putty.spec b/putty.spec index c5014db..bf6305e 100644 --- a/putty.spec +++ b/putty.spec @@ -23,10 +23,15 @@ Summary: GTK-based terminal emulator program License: MIT Group: System/X11/Utilities Url: http://www.chiark.greenend.org.uk/~sgtatham/putty/ -Source: http://the.earth.li/~sgtatham/putty/latest/%{name}-%{version}.tar.gz + +Source: http://the.earth.li/~sgtatham/putty/latest/%name-%version.tar.gz +Source2: http://the.earth.li/~sgtatham/putty/latest/%name-%version.tar.gz.RSA Patch3: putty-03-config.diff Patch4: putty-04-nodate.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if 0%{?suse_version} >= 1230 +BuildRequires: gpg-offline +%endif BuildRequires: gtk2-devel BuildRequires: krb5-devel @@ -36,9 +41,10 @@ for the SSH, Telnet, rlogin, and raw TCP computing protocols and as a serial console client. %prep +mv %_sourcedir/%name-%version.tar.gz.RSA %_sourcedir/%name-%version.tar.gz.sig +%{?gpg_verify: %gpg_verify %_sourcedir/%name-%version.tar.gz.sig} %setup -q -%patch3 -p1 -%patch4 -p1 +%patch -P 3 -P 4 -p1 %build %configure From 548999eea22c4054f5f655c07ce44539dca0efb2ac099754fea8d2c8c8b4d61a Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 6 Aug 2013 19:53:41 +0000 Subject: [PATCH 3/4] Sig vfy #2 OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/putty?expand=0&rev=10 --- putty.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/putty.spec b/putty.spec index bf6305e..92a164d 100644 --- a/putty.spec +++ b/putty.spec @@ -41,7 +41,7 @@ for the SSH, Telnet, rlogin, and raw TCP computing protocols and as a serial console client. %prep -mv %_sourcedir/%name-%version.tar.gz.RSA %_sourcedir/%name-%version.tar.gz.sig +cp %_sourcedir/%name-%version.tar.gz.RSA %_sourcedir/%name-%version.tar.gz.sig %{?gpg_verify: %gpg_verify %_sourcedir/%name-%version.tar.gz.sig} %setup -q %patch -P 3 -P 4 -p1 From 2c117cc51677b851886b6e233b4019a35d6fd27aa8fc53729a696bbdef97f5b6 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 7 Aug 2013 09:32:10 +0000 Subject: [PATCH 4/4] Conflicts with pssh; add black-bold color cosmetic fix from upstream OBS-URL: https://build.opensuse.org/package/show/X11:Utilities/putty?expand=0&rev=11 --- ...t-the-default-for-font-bolding-style.patch | 30 +++++++++++++++++++ putty-03-config.diff | 4 +-- putty.changes | 8 +++++ putty.spec | 8 +++-- 4 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 0001-Revert-the-default-for-font-bolding-style.patch diff --git a/0001-Revert-the-default-for-font-bolding-style.patch b/0001-Revert-the-default-for-font-bolding-style.patch new file mode 100644 index 0000000..28b3a27 --- /dev/null +++ b/0001-Revert-the-default-for-font-bolding-style.patch @@ -0,0 +1,30 @@ +From dbc1513565d852397c7d1c189ed23a48aa4fcff7 Mon Sep 17 00:00:00 2001 +From: simon +Date: Wed, 7 Aug 2013 06:22:52 +0000 +Subject: [PATCH] Revert the default for font bolding style back to using + colours rather than fonts. I broke this in r9559 when I added the option for + 'both', because the internal representation got offset by one so as to change + from a boolean to two bitfields and I must have confused myself about what + the default should be. + +git-svn-id: svn://svn.tartarus.org/sgt/putty@10008 cda61777-01e9-0310-a592-d414129be87e +--- + settings.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/settings.c b/settings.c +index 6499686..df24f53 100644 +--- a/settings.c ++++ b/settings.c +@@ -866,7 +866,7 @@ void load_open_settings(void *sesskey, Conf *conf) + gppi(sesskey, "TryPalette", 0, conf, CONF_try_palette); + gppi(sesskey, "ANSIColour", 1, conf, CONF_ansi_colour); + gppi(sesskey, "Xterm256Colour", 1, conf, CONF_xterm_256_colour); +- i = gppi_raw(sesskey, "BoldAsColour", 0); conf_set_int(conf, CONF_bold_style, i+1); ++ i = gppi_raw(sesskey, "BoldAsColour", 1); conf_set_int(conf, CONF_bold_style, i+1); + + for (i = 0; i < 22; i++) { + static const char *const defaults[] = { +-- +1.8.2 + diff --git a/putty-03-config.diff b/putty-03-config.diff index 3d41e4b..0d34fc6 100644 --- a/putty-03-config.diff +++ b/putty-03-config.diff @@ -1,8 +1,8 @@ * Put 3DES off as insecure. * Always use "linux" terminal type. This resolves some - strange key combos -* Set standard colors and use a more legilible font size + strange key combos. +* Set standard colors and use a more legilible font size. --- settings.c | 51 ++++++++++++++++++++++++++++++++++----------------- diff --git a/putty.changes b/putty.changes index 50b5f2c..45cf925 100644 --- a/putty.changes +++ b/putty.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Aug 7 09:28:25 UTC 2013 - jengelh@inai.de + +- Add 0001-Revert-the-default-for-font-bolding-style.patch + (upstream patch fixing a cosmetic change introduced in 0.63) +- Add Conflict tag against pssh package (Parallel SSH) due to + conflicting files in /usr/bin + ------------------------------------------------------------------- Tue Aug 6 19:47:43 UTC 2013 - jengelh@inai.de diff --git a/putty.spec b/putty.spec index 92a164d..64b19aa 100644 --- a/putty.spec +++ b/putty.spec @@ -26,14 +26,16 @@ Url: http://www.chiark.greenend.org.uk/~sgtatham/putty/ Source: http://the.earth.li/~sgtatham/putty/latest/%name-%version.tar.gz Source2: http://the.earth.li/~sgtatham/putty/latest/%name-%version.tar.gz.RSA -Patch3: putty-03-config.diff -Patch4: putty-04-nodate.diff +Patch1: 0001-Revert-the-default-for-font-bolding-style.patch +Patch2: putty-03-config.diff +Patch3: putty-04-nodate.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} >= 1230 BuildRequires: gpg-offline %endif BuildRequires: gtk2-devel BuildRequires: krb5-devel +Conflicts: pssh %description PuTTY is a terminal emulator application which can act as a client @@ -44,7 +46,7 @@ serial console client. cp %_sourcedir/%name-%version.tar.gz.RSA %_sourcedir/%name-%version.tar.gz.sig %{?gpg_verify: %gpg_verify %_sourcedir/%name-%version.tar.gz.sig} %setup -q -%patch -P 3 -P 4 -p1 +%patch -P 1 -P 2 -P 3 -p1 %build %configure