Bug#674597: goplay: Segfault if selection is moved out of bound
[Sebastian Reichel] Start goplay, select the first game (currently 0ad). Next press the up key from the arrows keys [0] and it will segfault. Thank you. With this description, I can reproduce it. The segfault give this backtrace: (gdb) bt #0 __strlen_sse2 () at ../sysdeps/i386/i686/multiarch/strlen.S:99 #1 0x0805a56e in std::char_traitschar::length (this=0x80a5870, p=0x8cebf78, s=1) at /usr/include/c++/4.4/bits/char_traits.h:263 #2 std::string::assign (this=0x80a5870, p=0x8cebf78, s=1) at /usr/include/c++/4.4/bits/basic_string.h:975 #3 std::string::operator= (this=0x80a5870, p=0x8cebf78, s=1) at /usr/include/c++/4.4/bits/basic_string.h:519 #4 PackageBrowser::item_select (this=0x80a5870, p=0x8cebf78, s=1) at pkgbrowser.cpp:231 #5 0xb7f32374 in Fl_Browser_::select(void*, int, int) () from /usr/lib/libfltk.so.1.1 #6 0xb7f324c3 in Fl_Browser_::select_only(void*, int) () from /usr/lib/libfltk.so.1.1 #7 0xb7f32782 in Fl_Browser_::handle(int) () from /usr/lib/libfltk.so.1.1 #8 0x08058914 in VersatileBrowser::handle (this=0x80a5870, e=8) at pkgbrowser.h:145 #9 PackageBrowser::handle (this=0x80a5870, e=8) at pkgbrowser.cpp:498 #10 0xb7f2bcd4 in ?? () from /usr/lib/libfltk.so.1.1 #11 0xb7f2ce1a in Fl::handle(int, Fl_Window*) () from /usr/lib/libfltk.so.1.1 #12 0xb7f7cf62 in fl_handle(_XEvent const) () from /usr/lib/libfltk.so.1.1 #13 0xb7f7e24e in ?? () from /usr/lib/libfltk.so.1.1 #14 0xb7f7e620 in fl_wait(double) () from /usr/lib/libfltk.so.1.1 #15 0xb7f2d9db in Fl::wait(double) () from /usr/lib/libfltk.so.1.1 ---Type return to continue, or q return to quit---q Quit (gdb) q The inclued patch avoid the segfault, but allow the table header line to be selected and do not update the side bar with information about the selected package, so it is not really a proper fix for the problem. I guess a proper fix would involve telling FLTK to avoid the header line in the list. Index: src/pkgbrowser.cpp === --- src/pkgbrowser.cpp (revisjon 14003) +++ src/pkgbrowser.cpp (arbeidskopi) @@ -228,12 +228,12 @@ { int n = VersatileBrowser::lineno(p); void *data = VersatileBrowser::data(n); - pkgname = (const char*) data; //printf( #%d : \%s\\n, n, (const char *)data); //fflush(stdout); if (data) { + pkgname = (const char*) data; const char *packagename = (const char *)data; Fl_Image *img = find_screenshot(packagename); Fl_Group *highest_parent=parent(); -- Happy hacking Petter Reinholdtsen -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#674597: goplay: Segfault if selection is moved out of bound
[Sebastian Reichel 2012-05-25] goplay segfauls, if you select the first entry and then change to the previous (non existing) entry by using the arrow keys. backtrace is not that helpful, because goplay has no debugging symbols available. I tried to reproduce this, but suspect I did not really understand the description. Can you go in more detail on how to replicate the crash? -- Happy hacking Petter Reinholdtsen -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#674597: goplay: Segfault if selection is moved out of bound
Hi, On Tue, Jan 15, 2013 at 10:32:57AM +0100, Petter Reinholdtsen wrote: goplay segfauls, if you select the first entry and then change to the previous (non existing) entry by using the arrow keys. backtrace is not that helpful, because goplay has no debugging symbols available. I tried to reproduce this, but suspect I did not really understand the description. Can you go in more detail on how to replicate the crash? Start goplay, select the first game (currently 0ad). Next press the up key from the arrows keys [0] and it will segfault. [0] http://en.wikipedia.org/wiki/Arrow_keys -- Sebastian signature.asc Description: Digital signature
Bug#674597: goplay: Segfault if selection is moved out of bound
Package: goplay Version: 0.5-1.1 Severity: normal Hi, goplay segfauls, if you select the first entry and then change to the previous (non existing) entry by using the arrow keys. backtrace is not that helpful, because goplay has no debugging symbols available. (gdb) bt #0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32 #1 0x5556b052 in ?? () #2 0x77957d81 in Fl_Browser_::select (this=0x557ad880, l=0x571080d0, i=1, docallbacks=6) at Fl_Browser_.cxx:531 #3 0x77957ebb in Fl_Browser_::select_only (this=0x557ad880, l=0x571080d0, docallbacks=6) at Fl_Browser_.cxx:566 #4 0x779581a5 in Fl_Browser_::handle (this=0x557ad880, event=8) at Fl_Browser_.cxx:586 #5 0x5556aa15 in ?? () #6 0x7795225e in send (event=optimized out, to=optimized out, window=optimized out) at Fl.cxx:702 #7 0x7795308d in Fl::handle (e=optimized out, window=0x557c4ab0) at Fl.cxx:828 #8 0x77994cdb in fl_handle (thisevent=...) at Fl_x.cxx:1030 #9 0x77995c83 in do_queued_events () at Fl_x.cxx:176 #10 0x779960f5 in fl_wait (time_to_wait=1e+20) at Fl_x.cxx:242 #11 0x77953ed8 in Fl::wait (time_to_wait=optimized out) at Fl.cxx:376 #12 0x77953fdd in Fl::wait () at Fl.cxx:407 #13 0x555613ad in main () -- Sebastian -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (500, 'testing'), (100, 'unstable'), (50, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages goplay depends on: ii apt-xapian-index 0.45 ii debtags 1.9+b1 ii libapt-pkg4.120.9.3 ii libc6 2.13-32 ii libept1.4.12 1.0.6.1 ii libfltk1.11.1.10-13 ii libgcc1 1:4.7.0-8 ii libstdc++64.7.0-8 ii libxapian22 1.2.10-1 ii zlib1g1:1.2.7.dfsg-1 Versions of packages goplay recommends: ii games-thumbnails 20120227 goplay suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org