Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

    PaulHowarth/Blog/2010-06-25

Friday 25th June 2010

Fedora Project

  • Finally got round to debugging a segfault in gtorrentviewer (Bug #542502 and Bug #572806), which turned out to be straightforward as one of the bug reporters took the trouble to provide a reliable reproducer of the bug; in the end it was the simple matter of a GValue being declared as a local variable in a function and not initialized to zero before use, resulting in this stack trace:

  • [New Thread 23163]
    Core was generated by `gtorrentviewer /storage/data/torrents-new/xxxx'.
    Program terminated with signal 11, Segmentation fault.
    #0  0x000000340cc28f9c in type_check_is_value_type_U (value=0x7fffdbacac80, 
        type=64) at gtype.c:3836
    3836    gtype.c: No such file or directory.
            in gtype.c
    
    ...
    
    Thread 1 (Thread 23160):
    #0  0x000000340cc28f9c in type_check_is_value_type_U (value=0x7fffdbacac80, 
        type=64) at gtype.c:3836
            tflags = G_TYPE_FLAG_VALUE_ABSTRACT
            node = 0x2224010
    #1  IA__g_type_check_value_holds (value=0x7fffdbacac80, type=64)
        at gtype.c:3878
    No locals.
    #2  0x000000340cc31219 in IA__g_value_set_string (value=0x7fffdbacac80, 
        v_string=0x22c4560 "http://tracker.openbittorrent.com/announce")
        at gvaluetypes.c:922
            __val = 0x7fffdbacac80
            __r = <value optimized out>
            _g_boolean_var_ = <value optimized out>
            new_val = 0x22c4560 "http://tracker.openbittorrent.com/announce"
            __PRETTY_FUNCTION__ = "IA__g_value_set_string"
    #3  0x0000000000407aa6 in on_RefreshTrackerButton_clicked (
        mwin=<value optimized out>, user_data=<value optimized out>)
        at mainwindow.c:753
            iter = {stamp = -1347712751, user_data = 0x22e5830, user_data2 = 0x0, 
              user_data3 = 0x0}
            itemvalue = {g_type = 35799056, data = {{v_int = 214096389, v_uint = 
        214096389, v_long = 223552395781, v_ulong = 223552395781, v_int64 = 
        223552395781, v_uint64 = 223552395781, v_float = 3.00216485e-31, 
                  v_double = 1.1044955880089772e-312, v_pointer = 0x340cc2da05}, {
                  v_int = 36582800, v_uint = 36582800, v_long = 36582800, 
                  v_ulong = 36582800, v_int64 = 36582800, v_uint64 = 36582800, 
                  v_float = 1.27988727e-37, v_double = 1.8074304708681154e-316, 
                  v_pointer = 0x22e3590 }
            }}
            err = 0x340cc1894c
  • The fix was as simple as this:
  • --- GTorrentViewer-0.2b/src/mainwindow.c.orig   2004-10-26 05:37:58.000000000 +0100
    +++ GTorrentViewer-0.2b/src/mainwindow.c        2010-06-25 14:43:22.391786427 +0100
    @@ -744,7 +744,7 @@
     {
       GtkListStore *list;
       GtkTreeIter iter;
    -  GValue itemvalue;
    +  GValue itemvalue = {0};
       gchar *tracker;
       GError *err;

Local Packages

  • Updated gtorrentviewer as per the Fedora package, fixing a crash when the "Refresh" button on the "Tracker Details" tab was pushed

  • Rebuilt libspf2 for perl 5.12.1 in Rawhide and added -fno-strict-aliasing compiler option

  • Updated perl-Number-Compare with patch from CPAN RT#58466 to fix "uninitialized value in comparison" warnings (raised as Bug #607982 in Fedora)

  • Updated perl-YAML-Tiny to 1.42:

    • No functional changes
    • Clarified documation regarding treatment of "bool" keywords

    • YAML::Perl comparison tests were behaving incorrectly

    • Author tests updated and moved into xt/

    • Updated the versions of the other YAML parsers for testing
  • Completed the rebuild of Rawhide packages for perl 5.12.1: bw-whois, grepmail, perl-Array-Compare, perl-Carp-Clan, perl-Class-C3-XS, perl-Class-Factory-Util, perl-Class-Inspector, perl-Class-MOP, perl-Class-Singleton, perl-ConfigReader-Simple, perl-Convert-BinHex, perl-Convert-TNEF, perl-Convert-UUlib, perl-DBD-SQLite, perl-DBI, perl-DBM-Deep, perl-DateTime-Calendar-Mayan, perl-DateTime-Format-Builder, perl-DateTime-Format-MySQL, perl-DateTime-Format-Strptime, perl-DateTime, perl-Declare-Constraints-Simple, perl-Devel-GlobalDestruction, perl-Devel-StackTrace, perl-Devel-Symdump, perl-Digest-BubbleBabble, perl-Email-Address, perl-Error, perl-Expect, perl-ExtUtils-CBuilder, perl-File-Find-Rule-Perl, perl-File-Find-Rule, perl-File-Remove, perl-FileHandle-Fmode, perl-HTML-Lint, perl-HTML-SimpleLinkExtor, perl-HTTP-SimpleLinkChecker, perl-HTTP-Size, perl-Hook-LexWrap, perl-IO-Multiplex, perl-IO-Socket-INET6, perl-IO-Socket-SSL, perl-IO-Tty, perl-IO-stringy, perl-IPC-Run, perl-Jcode, perl-LMAP-CID2SPF, perl-Locale-US, perl-MIME-tools, perl-Mail-IMAPClient, perl-Mail-SPF-Query, perl-Mail-SPF-Test, perl-Mail-SPF, perl-Mail-SRS, perl-Mail-Sender, perl-Mail-Sendmail, perl-MailTools, perl-Module-Pluggable, perl-Module-Refresh, perl-Moose, perl-Net-CIDR-Lite, perl-Net-CIDR, perl-Net-DNS-Resolver-Programmable, perl-Net-DNS, perl-Net-IP, perl-Net-LibIDN, perl-Net-SMTP-SSL, perl-Net-SSLeay, perl-Net-Server, perl-NetAddr-IP, perl-Package-Constants, perl-Package-Stash, perl-Params-Coerce, perl-Params-Validate, perl-Parse-CPAN-Meta, perl-Pod-Escapes, perl-Pod-Simple, perl-Readonly-XS, perl-Readonly, perl-Regexp-Common, perl-SUPER, perl-Scope-Guard, perl-Sendmail-PMilter, perl-Socket6, perl-TimeDate, perl-version, and weblint++


Recent