You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.3 KiB
111 lines
3.3 KiB
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 |
|
From: Fedora GDB patches <invalid@email.com> |
|
Date: Fri, 27 Oct 2017 21:07:50 +0200 |
|
Subject: gdb-6.5-readline-long-line-crash-test.patch |
|
|
|
;; Fix readline segfault on excessively long hand-typed lines. |
|
;;=fedoratest |
|
|
|
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=214196 |
|
|
|
diff --git a/gdb/testsuite/gdb.base/readline-overflow.exp b/gdb/testsuite/gdb.base/readline-overflow.exp |
|
new file mode 100644 |
|
--- /dev/null |
|
+++ b/gdb/testsuite/gdb.base/readline-overflow.exp |
|
@@ -0,0 +1,96 @@ |
|
+# Copyright 2006 Free Software Foundation, Inc. |
|
+ |
|
+# This program is free software; you can redistribute it and/or modify |
|
+# it under the terms of the GNU General Public License as published by |
|
+# the Free Software Foundation; either version 2 of the License, or |
|
+# (at your option) any later version. |
|
+# |
|
+# This program is distributed in the hope that it will be useful, |
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
+# GNU General Public License for more details. |
|
+# |
|
+# You should have received a copy of the GNU General Public License |
|
+# along with this program; if not, write to the Free Software |
|
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
+ |
|
+# Please email any bugs, comments, and/or additions to this file to: |
|
+# bug-gdb@prep.ai.mit.edu |
|
+ |
|
+# This file was written by Jan Kratochvil <jan.kratochvil@redhat.com> |
|
+ |
|
+# This file is part of the gdb testsuite. |
|
+ |
|
+# |
|
+# Tests for readline buffer overflow. |
|
+# |
|
+ |
|
+if $tracelevel { |
|
+ strace $tracelevel |
|
+} |
|
+ |
|
+global env |
|
+ |
|
+save_vars { env(GDBHISTFILE) env(HISTSIZE) TERM timeout } { |
|
+ # The arrow key test relies on the standard VT100 bindings, so |
|
+ # make sure that an appropriate terminal is selected. The same |
|
+ # bug doesn't show up if we use ^P / ^N instead. |
|
+ setenv TERM vt100 |
|
+ |
|
+ set timeout 600 |
|
+ |
|
+ set env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history" |
|
+ set env(HISTSIZE) "10" |
|
+ |
|
+ gdb_exit |
|
+ gdb_start |
|
+ gdb_reinitialize_dir $srcdir/$subdir |
|
+ |
|
+ |
|
+ set width 11 |
|
+ gdb_test "set width $width" \ |
|
+ "" \ |
|
+ "Setting width to $width." |
|
+ #gdb_test "set height 1" \ |
|
+ # "" \ |
|
+ # "Setting height to 1." |
|
+ send_gdb "run X" |
|
+ set i 0 |
|
+ # It crashes using `set width 7' on `set total 3560'. |
|
+ # Sometimes it corrupts screen on `set width 7'. |
|
+ # Bugreport used `set total 130001': |
|
+ # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=214196 |
|
+ # Check also `timeout' above. |
|
+ set total 4200 |
|
+ gdb_expect { |
|
+ -re X { |
|
+ incr i |
|
+ if {$i <= $total} { |
|
+ send_gdb "X" |
|
+ exp_continue |
|
+ } |
|
+ } |
|
+ -re "\[ \b\r\n\]" { |
|
+ exp_continue |
|
+ } |
|
+ eof { |
|
+ fail "gdb sending total $total characters" |
|
+ note "Failed after sending $i characters, reason: EOF" |
|
+ gdb_clear_suppressed |
|
+ } |
|
+ timeout { |
|
+ fail "gdb sending total $total characters" |
|
+ note "Failed after sending $i characters (timeout $timeout), reason: TIMEOUT" |
|
+ gdb_clear_suppressed |
|
+ } |
|
+ default { |
|
+ fail "gdb sending total $total characters" |
|
+ note "Failed after sending $i characters, reason: 0=\[$expect_out(0,string)\] buffer=\[$expect_out(buffer)\]" |
|
+ gdb_clear_suppressed |
|
+ } |
|
+ } |
|
+ send_gdb "\r" |
|
+ gdb_test "" \ |
|
+ "No executable file specified..*" \ |
|
+ "All the characters transferred" |
|
+}
|
|
|