After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 643226 - critical warnings on soup_cookie_domain_matches
critical warnings on soup_cookie_domain_matches
Status: RESOLVED FIXED
Product: libsoup
Classification: Core
Component: Misc
2.33.x
Other Linux
: Normal normal
: ---
Assigned To: libsoup-maint@gnome.bugs
libsoup-maint@gnome.bugs
Depends on:
Blocks:
 
 
Reported: 2011-02-24 20:03 UTC by Emilio Pozuelo Monfort
Modified: 2011-03-11 01:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emilio Pozuelo Monfort 2011-02-24 20:03:29 UTC
Running liferea, I sometimes get critical warnings from libsoup. We're not doing anything special with hosts in Liferea, so I suspect this is a libsoup bug. This with libsoup 2.33.90.


libsoup-CRITICAL **: soup_cookie_domain_matches: assertion `host != NULL' failed
aborting...

Program received signal SIGABRT, Aborted.
0x00007ffff1aba165 in raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
	in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
  • #0 raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 abort
    at abort.c line 92
  • #2 g_logv
    at /tmp/buildd/glib2.0-2.28.1/./glib/gmessages.c line 557
  • #3 g_log
    at /tmp/buildd/glib2.0-2.28.1/./glib/gmessages.c line 577
  • #4 soup_cookie_domain_matches
    at soup-cookie.c line 140
  • #5 process_set_cookie_header
    at soup-cookie-jar.c line 568
  • #6 g_closure_invoke
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gclosure.c line 767
  • #7 signal_emit_unlocked_R
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gsignal.c line 3252
  • #8 g_signal_emit_valist
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gsignal.c line 2983
  • #9 g_signal_emit
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gsignal.c line 3040
  • #10 io_read
    at soup-message-io.c line 944
  • #11 g_closure_invoke
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gclosure.c line 767
  • #12 signal_emit_unlocked_R
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gsignal.c line 3252
  • #13 g_signal_emit_valist
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gsignal.c line 2983
  • #14 g_signal_emit
    at /tmp/buildd/glib2.0-2.28.1/./gobject/gsignal.c line 3040
  • #15 socket_read_watch
    at soup-socket.c line 1139
  • #16 g_main_dispatch
    at /tmp/buildd/glib2.0-2.28.1/./glib/gmain.c line 2440
  • #17 g_main_context_dispatch
    at /tmp/buildd/glib2.0-2.28.1/./glib/gmain.c line 3013
  • #18 g_main_context_iterate
    at /tmp/buildd/glib2.0-2.28.1/./glib/gmain.c line 3091
  • #19 g_main_loop_run
    at /tmp/buildd/glib2.0-2.28.1/./glib/gmain.c line 3299
  • #20 gtk_main
    from /usr/lib/libgtk-3.so.0
  • #21 main
    at main.c line 350

Comment 1 Dan Winship 2011-02-25 13:02:15 UTC
hm... i guess you're calling soup_message_set_first_party() with a non-http URI?
Comment 2 Emilio Pozuelo Monfort 2011-02-28 18:37:33 UTC
We don't.

Our code is at http://liferea.git.sourceforge.net/git/gitweb.cgi?p=liferea/liferea;a=blob;f=src/net.c;h=9177a0246467272faa58d5624076d838dc5f7b44;hb=HEAD

Plus a few soup_uri_set_* calls to set the proxy for webkit, at http://liferea.git.sourceforge.net/git/gitweb.cgi?p=liferea/liferea;a=blob;f=src/webkit/webkit.c;h=5be250dae7851fd455fc4fa17dec642c5a4c698c;hb=HEAD

Let me know if you think this is actually a bug in our code and not in libsoup.
Comment 3 Dan Winship 2011-03-11 01:02:42 UTC
 173         webkit_web_view_load_string (WEBKIT_WEB_VIEW (htmlwidget), string,
 174                                      content_type, "UTF-8", "file://");

"file://" is invalid. It should be "file:///". I suspect that may fix the bug. (The error is definitely happening within WebKit's use of libsoup, not your own direct use of it.)

But it is possible that you could have, eg, a data: URI, which would legitimately have no host component, so libsoup ought to be catching that before the return-if-fail. Fixed in git. Thanks for the bug report.