#73 regular memory corruption crashes

v1.0 (example)
closed-fixed
nobody
5
2015-02-09
2011-03-11
No

Viking 1.1 on openSUSE 11.4 regularly crashes on memory corruption. It has very probably something to do with failed tile download (it always preceeds the crash).

Stack trace seems to be unuseful - it crashes lately after the corruption. Valgrind would probably help.

(many errors skipped)

** (viking:18001): WARNING **: Chyba stahování: /home/sbrabec/.viking-maps/t13s-2z0/283758/177628

** (viking:18001): WARNING **: curl_download_uri: http response: 404 for uri http://tile.openstreetmap.org/19/283758/177629.png

** (viking:18001): WARNING **: Chyba stahování: /home/sbrabec/.viking-maps/t13s-2z0/283758/177629
DEBUG: queue count=118 size=49753624
DEBUG: queue count=90 size=50144040
DEBUG: queue count=160 size=43269760
DEBUG: queue count=120 size=49999584
DEBUG: queue count=37 size=49745524
DEBUG: queue count=105 size=48376068
DEBUG: queue count=97 size=27928036
DEBUG: queue count=78 size=50142840
*** longjmp causes uninitialized stack frame ***: viking terminated
======= Backtrace: =========
/lib64/libc.so.6(__fortify_fail+0x37)[0x7f86007c1e97]
/lib64/libc.so.6(+0xe9e29)[0x7f86007c1e29]
/lib64/libc.so.6(__longjmp_chk+0x33)[0x7f86007c1d93]
/usr/lib64/libcurl.so.4(+0xb485)[0x7f860109b485]
/lib64/libpthread.so.0(+0xf2d0)[0x7f8600a542d0]
/lib64/libc.so.6(__poll+0x53)[0x7f86007a2503]
/lib64/libglib-2.0.so.0(+0x46114)[0x7f860155d114]
/lib64/libglib-2.0.so.0(g_main_loop_run+0x195)[0x7f860155da35]
/usr/lib64/libgtk-x11-2.0.so.0(gtk_main+0xa7)[0x7f8602cf97e7]
viking[0x411635]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f86006f6bfd]
viking[0x411269]
======= Memory map: ========
00400000-004d1000 r-xp 00000000 08:02 274394 /usr/bin/viking
006d1000-006d2000 r--p 000d1000 08:02 274394 /usr/bin/viking
006d2000-006f7000 rw-p 000d2000 08:02 274394 /usr/bin/viking
006f7000-10673000 rw-p 00000000 00:00 0 [heap]
7f85e0000000-7f85e3104000 rw-p 00000000 00:00 0
7f85e3104000-7f85e4000000 ---p 00000000 00:00 0
7f85ea7fd000-7f85ea7fe000 ---p 00000000 00:00 0
7f85ea7fe000-7f85eaffe000 rw-p 00000000 00:00 0
7f85eaffe000-7f85eafff000 ---p 00000000 00:00 0
7f85eafff000-7f85eb7ff000 rw-p 00000000 00:00 0
7f85ec000000-7f85ef4b6000 rw-p 00000000 00:00 0
7f85ef4b6000-7f85f0000000 ---p 00000000 00:00 0
7f85f0d9c000-7f85f0d9d000 ---p 00000000 00:00 0
7f85f0d9d000-7f85f159d000 rw-p 00000000 00:00 0
7f85f159d000-7f85f159e000 ---p 00000000 00:00 0
7f85f159e000-7f85f1d9e000 rw-p 00000000 00:00 0
7f85f1d9e000-7f85f1da3000 r-xp 00000000 08:02 282286 /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
7f85f1da3000-7f85f1fa2000 ---p 00005000 08:02 282286 /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
7f85f1fa2000-7f85f1fa3000 r--p 00004000 08:02 282286 /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
7f85f1fa3000-7f85f1fa4000 rw-p 00005000 08:02 282286 /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
7f85f27a6000-7f85f2841000 r--p 00000000 08:02 661237 /usr/share/fonts/truetype/DejaVuSans-Bold.ttf
7f85f2841000-7f85f28a1000 rw-s 00000000 00:04 1310745 /SYSV00000000 (deleted)
7f85f28a1000-7f85f2901000 rw-s 00000000 00:04 1015831 /SYSV00000000 (deleted)
7f85f2901000-7f85f291c000 r--s 00000000 08:02 266547 /usr/share/mime/mime.cache
7f85f291c000-7f85f29c3000 r--p 00000000 08:02 662828 /usr/share/fonts/truetype/DejaVuSans.ttf
7f85f29c3000-7f85f29c5000 r-xp 00000000 08:02 802582 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f85f29c5000-7f85f2bc4000 ---p 00002000 08:02 802582 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f85f2bc4000-7f85f2bc5000 r--p 00001000 08:02 802582 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f85f2bc5000-7f85f2bc6000 rw-p 00002000 08:02 802582 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f85f2bc6000-7f85f2bd0000 r--s 00000000 08:02 660751 /var/cache/fontconfig/77e41c5059666d75f92e318d4be8c21e-le64.cache-3
7f85f2bd0000-7f85f2bec000 r--s 00000000 08:02 670761 /var/cache/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-3
7f85f2bec000-7f85f2bfa000 r-xp 00000000 08:02 1704047 /lib64/libudev.so.0.10.0
7f85f2bfa000-7f85f2df9000 ---p 0000e000 08:02 1704047 /lib64/libudev.so.0.10.0
7f85f2df9000-7f85f2dfa000 r--p 0000d000 08:02 1704047 /lib64/libudev.so.0.10.0
7f85f2dfa000-7f85f2dfb000 rw-p 0000e000 08:02 1704047 /lib64/libudev.so.0.10.0
7f85f2dfb000-7f85f2e3f000 r-xp 00000000 08:02 1704882 /lib64/libdbus-1.so.3.5.3
7f85f2e3f000-7f85f303e000 ---p 00044000 08:02 1704882 /lib64/libdbus-1.so.3.5.3
7f85f303e000-7f85f303f000 r--p 00043000 08:02 1704882 /lib64/libdbus-1.so.3.5.3
7f85f303f000-7f85f3040000 rw-p 00044000 08:02 1704882 /lib64/libdbus-1.so.3.5.3
7f85f3040000-7f85f3058000 r-xp 00000000 08:02 275163 /usr/lib64/libgvfscommon.so.0.0.0
7f85f3058000-7f85f3257000 ---p 00018000 08:02 275163 /usr/lib64/libgvfscommon.so.0.0.0
7f85f3257000-7f85f3258000 r--p 00017000 08:02 275163 /usr/lib64/libgvfscommon.so.0.0.0
7f85f3258000-7f85f3259000 rw-p 00018000 08:02 275163 /usr/lib64/libgvfscommon.so.0.0.0
7f85f3259000-7f85f3283000 r-xp 00000000 08:02 278195 /usr/lib64/gio/modules/libgvfsdbus.so
7f85f3283000-7f85f3482000 ---p 0002a000 08:02 278195 /usr/lib64/gio/modules/libgvfsdbus.so
7f85f3482000-7f85f3483000 r--p 00029000 08:02 278195 /usr/lib64/gio/modules/libgvfsdbus.so
7f85f3483000-7f85f3484000 rw-p 0002a000 08:02 278195 /usr/lib64/gio/modules/libgvfsdbus.so
7f85f3484000-7f85f3485000 rw-p 00000000 00:00 0
7f85f3485000-7f85f3cb0000 r--p 00000000 08:02 282567 /usr/share/icons/hicolor/icon-theme.cache
7f85f3cb0000-7f85f7354000 r--p 00000000 08:02 672195 /usr/share/icons/gnome/icon-theme.cache
7f85f7354000-7f85f964d000 r--p 00000000 08:02 934161 /usr/share/icons/Tango/icon-theme.cache
7f85f964d000-7f85f9925000 r--p 00000000 08:02 432959 /usr/share/icons/Gilouche/icon-theme.cache
7f85f9925000-7f85f9927000 r-xp 00000000 08:02 804223 /usr/lib64/gtk-2.0/modules/libgnomesegvhandler.so
7f85f9927000-7f85f9b26000 ---p 00002000 08:02 804223 /usr/lib64/gtk-2.0/modules/libgnomesegvhandler.so
7f85f9b26000-7f85f9b27000 r--p 00001000 08:02 804223 /usr/lib64/gtk-2.0/modules/libgnomesegvhandler.so
7f85f9b27000-7f85f9b28000 rw-p 00002000 08:02 804223 /usr/lib64/gtk-2.0/modules/libgnomesegvhandler.so
7f85f9b28000-7f85f9b2e000 r-xp 00000000 08:02 273963 /usr/lib64/libogg.so.0.7.1
7f85f9b2e000-7f85f9d2d000 ---p 00006000 08:02 273963 /usr/lib64/libogg.so.0.7.1
7f85f9d2d000-7f85f9d2e000 r--p 00005000 08:02 273963 /usr/lib64/libogg.so.0.7.1
7f85f9d2e000-7f85f9d2f000 rw-p 00006000 08:02 273963 /usr/lib64/libogg.so.0.7.1
7f85f9d2f000-7f85f9d5a000 r-xp 00000000 08:02 275789 /usr/lib64/libvorbis.so.0.4.5
** (bug-buddy:25900): WARNING **: Couldn't load /etc/xdg/autostart/ksmolt-autostart.desktop: Neplatný název klíče: X-KDE-autostart-condition[$e]
Missing separate debuginfo for /usr/lib64/libgps.so.19
Try: zypper install -C "debuginfo(build-id)=e8e857492aa76ba931232f3ddc45d0b02e3b23e8"
41../sysdeps/unix/sysv/linux/waitpid.c: Adresář nebo soubor neexistuje.
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `GtkTreeView::odd-row-color' of type `GdkColor' from rc file value "((GString*) 0xa14ac0)" of type `GString'

System: Linux 2.6.37.1-1.2-desktop #1 SMP PREEMPT 2011-02-21 10:34:10 +0100 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10903000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Gilouche
Icon Theme: Gilouche
GTK+ Modules: gnomesegvhandler, canberra-gtk-module

Memory status: size: 720490496 vsize: 720490496 resident: 313171968 share: 14135296 rss: 313171968 rss_rlim: 18446744073709551615
CPU usage: start_time: 1299854908 rtime: 98642 utime: 96771 stime: 1871 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/viking'

[Thread debugging using libthread_db enabled]
0x00007f8600a53e6d in __libc_waitpid (pid=<value optimized out>, stat_loc=<value optimized out>, options=<value optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:41
in ../sysdeps/unix/sysv/linux/waitpid.c
#0 0x00007f8600a53e6d in __libc_waitpid (pid=<value optimized out>, stat_loc=<value optimized out>, options=<value optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:41
#1 0x00007f86015a2e39 in g_spawn_sync (working_directory=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>, flags=<value optimized out>, child_setup=<value optimized out>, user_data=<value optimized out>, standard_output=0x0, standard_error=0x0, exit_status=0x0, error=0x7fffeccd13f8) at gspawn.c:392
#2 0x00007f86015a3379 in g_spawn_command_line_sync (command_line=<value optimized out>, standard_output=0x0, standard_error=0x0, exit_status=0x0, error=0x7fffeccd13f8) at gspawn.c:706
#3 0x00007f85f9926407 in run_bug_buddy (signum=<value optimized out>) at gnome-segvhanlder.c:240
#4 bugbuddy_segv_handle (signum=<value optimized out>) at gnome-segvhanlder.c:191
#5 <signal handler called>
#6 0x00007f860070aab5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7 0x00007f860070bfb6 in abort () at abort.c:92
#8 0x00007f8600745dd3 in __libc_message (do_abort=2, fmt=0x7f8600805156 "*** %s ***: %s terminated\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:186
#9 0x00007f86007c1e97 in __fortify_fail (msg=0x7f8600805115 "longjmp causes uninitialized stack frame") at fortify_fail.c:32
#10 0x00007f86007c1e29 in ____longjmp_chk () at ../sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S:86
#11 0x00007f86007c1d93 in __longjmp_chk (env=0x7f86012ecde0, val=<value optimized out>) at ../setjmp/longjmp.c:40
#12 0x00007f860109b485 in alarmfunc () from /usr/lib64/libcurl.so.4
#13 <signal handler called>
#14 0x00007f86007a2503 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#15 0x00007f860155d114 in g_main_context_poll (context=0x738170, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3404
#16 g_main_context_iterate (context=0x738170, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3086
#17 0x00007f860155da35 in g_main_loop_run (loop=0xc2839e0) at gmain.c:3299
#18 0x00007f8602cf97e7 in IA__gtk_main () at gtkmain.c:1237
#19 0x0000000000411635 in main (argc=1577, argv=0x7fffeccd29b8) at main.c:201

Thread 1 (Thread 0x7f86033db7e0 (LWP 18001)):
#0 0x00007f8600a53e6d in __libc_waitpid (pid=<value optimized out>, stat_loc=<value optimized out>, options=<value optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:41
resultvar = 18446744073709551104
oldtype = 2
#1 0x00007f86015a2e39 in g_spawn_sync (working_directory=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>, flags=<value optimized out>, child_setup=<value optimized out>, user_data=<value optimized out>, standard_output=0x0, standard_error=0x0, exit_status=0x0, error=0x7fffeccd13f8) at gspawn.c:392
outpipe = -1
errpipe = -1
pid = 25900
fds = {__fds_bits = {16, 0, 213488056, 140737166251000, 213587536, 213488032, 3, 0, 213488056, 140213524859445, 206158430232, 330, 140737166250800, 140737166250808, 140737166250920, 0}}
ret = <value optimized out>
outstr = 0x0
errstr = 0x0
failed = <value optimized out>
status = <value optimized out>
__PRETTY_FUNCTION__ = "g_spawn_sync"
#2 0x00007f86015a3379 in g_spawn_command_line_sync (command_line=<value optimized out>, standard_output=0x0, standard_error=0x0, exit_status=0x0, error=0x7fffeccd13f8) at gspawn.c:706
retval = <value optimized out>
argv = 0xcb991a0
__PRETTY_FUNCTION__ = "g_spawn_command_line_sync"
#3 0x00007f85f9926407 in run_bug_buddy (signum=<value optimized out>) at gnome-segvhanlder.c:240
res = <value optimized out>
warning_file = 0x0
exec_str = 0xcd77d60 "bug-buddy --appname=\"viking\" --pid=18001"
args_str = 0xcbfec00
error = 0x0
#4 bugbuddy_segv_handle (signum=<value optimized out>) at gnome-segvhanlder.c:191
in_segv = 1
pid = <value optimized out>
appname = 0x702f40 "viking"
#5 <signal handler called>
No symbol table info available.
#6 0x00007f860070aab5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
resultvar = 0
pid = <value optimized out>
selftid = <value optimized out>
#7 0x00007f860070bfb6 in abort () at abort.c:92
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x7fffeccd1978, sa_sigaction = 0x7fffeccd1978}, sa_mask = {__val = {140737166252392, 140737166275715, 6, 140213510754534, 3, 140737166252402, 6, 140213510754538, 2, 140737166252390, 2, 140213510745710, 1, 140213510754534, 3, 140737166252396}}, sa_flags = 12, sa_restorer = 0x7f86008050ea}
sigs = {__val = {32, 0 <repeats 15 times>}}
#8 0x00007f8600745dd3 in __libc_message (do_abort=2, fmt=0x7f8600805156 "*** %s ***: %s terminated\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:186
ap = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffeccd2268, reg_save_area = 0x7fffeccd2178}}
ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffeccd2268, reg_save_area = 0x7fffeccd2178}}
fd = 8
on_2 = <value optimized out>
list = <value optimized out>
nlist = <value optimized out>
cp = <value optimized out>
written = <value optimized out>
#9 0x00007f86007c1e97 in __fortify_fail (msg=0x7f8600805115 "longjmp causes uninitialized stack frame") at fortify_fail.c:32
No locals.
#10 0x00007f86007c1e29 in ____longjmp_chk () at ../sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S:86
No locals.
#11 0x00007f86007c1d93 in __longjmp_chk (env=0x7f86012ecde0, val=<value optimized out>) at ../setjmp/longjmp.c:40
No locals.
#12 0x00007f860109b485 in alarmfunc () from /usr/lib64/libcurl.so.4
No symbol table info available.
#13 <signal handler called>
No symbol table info available.
#14 0x00007f86007a2503 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
resultvar = 18446744073709551612
oldtype = 0
result = <value optimized out>
#15 0x00007f860155d114 in g_main_context_poll (context=0x738170, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3404
poll_func = 0x7f860156d120 <g_poll>
#16 g_main_context_iterate (context=0x738170, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3086
max_priority = 2147483647
timeout = -1
some_ready = <value optimized out>
nfds = 4
allocated_nfds = <value optimized out>
fds = 0xcb203c0
__PRETTY_FUNCTION__ = "g_main_context_iterate"
#17 0x00007f860155da35 in g_main_loop_run (loop=0xc2839e0) at gmain.c:3299
self = 0x6f9080
__PRETTY_FUNCTION__ = "g_main_loop_run"
#18 0x00007f8602cf97e7 in IA__gtk_main () at gtkmain.c:1237
tmp_list = <value optimized out>
functions = 0x0
init = <value optimized out>
loop = 0xc2839e0
#19 0x0000000000411635 in main (argc=1577, argv=0x7fffeccd29b8) at main.c:201
first_window = 0x8020a0
main_icon = <value optimized out>
dashdash_already = 0
i = 1577
error = 0x0
gui_initialized = <value optimized out>
A debugging session is active.

Inferior 1 [process 18001] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]

----------- .xsession-errors ---------------------
*** NSPlugin Wrapper *** WARNING: unhandled variable 18 in NPP_GetValue()
(gpk-update-icon:4039): PackageKit-DEBUG: notify::connected
(gpk-update-icon:4039): PackageKit-DEBUG: refreshing task list
(gpk-update-icon:4039): PackageKit-DEBUG: refreshing task list
(gpk-update-icon:4039): PackageKit-DEBUG: notify::connected
** (gnome-session:3855): DEBUG: Searching for 16777241 in 16777241,16777242
** (gnome-session:3855): DEBUG: Watch 5 fired, idle time = 300000
** (gnome-session:3855): DEBUG: GsmPresence: setting idle: 1
** (gnome-session:3855): DEBUG: Updating ConsoleKit idle status: 1
** (gnome-session:3855): DEBUG: GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged
** (gnome-session:3855): DEBUG: GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged
** (gnome-session:3855): DEBUG: GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged
** (gnome-session:3855): DEBUG: GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged
** (gnome-session:3855): DEBUG: GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged
** (gnome-session:3855): DEBUG: GsmDBusClient: obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameOwnerChanged
--------------------------------------------------

Discussion

  • Rob Norris

    Rob Norris - 2011-03-17

    What's the output from the simple command (as root)

    grep segfault /var/log/messages

    All I can say it that I've tried Viking 1.1 on openSUSE11.4 (32bit) in a VM and it seemed to work fine.

    I mainly run Debian 64bit which does throw up some libcurl faults eg:
    viking[12991]: segfault at 10000084c ip 00007fc2d5690b82 sp 00007fc2c58b8878 error 6 in libcurl-gnutls.so.4.2.0

    I haven't really worked out the best way to investigate that yet....(goes off to install 'libcurl4-dbg')

     
  • Stanislav Brabec

    This is not a segfault on openSUSE and /var/log/messages does not contain anything useful.

    I am using x86_64. Please note that openSUSE compiles all sources with , so some possible crashes end with abort. openSUSE uses: -D_FORTIFY_SOURCE=2 -fstack-protector

    I also tried valgrind - even if application crashes, valgrind did not report any memory corruption (but you may get a different result with an unfortified binaries).

    In gdb, application silently disappeared on ALARM signal. No crash.

    I am guessing that it crashes after some map tile download timeouts.

     
  • Rob Norris

    Rob Norris - 2011-04-01

    I think I've finally worked it out - yay!

    After much Googling + investigation

    VIking has *never* been using curl correctly, see http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

    The fix is:
    diff --git a/src/curl_download.c b/src/curl_download.c
    index cdb5e1c..afb4723 100644
    --- a/src/curl_download.c
    +++ b/src/curl_download.c
    @@ -162,6 +162,7 @@ int curl_download_uri ( const char *uri, FILE *f, DownloadMapOptions *options, D
    }
    if (vik_verbose)
    curl_easy_setopt ( curl, CURLOPT_VERBOSE, 1 );
    + curl_easy_setopt ( curl, CURLOPT_NOSIGNAL, 1 ); // Yep, we're a multi-threaded program so don't let signals mess it up!
    curl_easy_setopt ( curl, CURLOPT_URL, uri );
    curl_easy_setopt ( curl, CURLOPT_WRITEDATA, f );
    curl_easy_setopt ( curl, CURLOPT_WRITEFUNCTION, curl_write_func);

    This obviously disables signals within curl, which is equivalent to my dirty workaround suggested on the viking mailing list.

    Future hint: read the library (in this case curl) documentation a bit more thoroughly ;)
    Assuming such documentation exists at that time!

    diff --git a/src/curl_download.c b/src/curl_download.c
    index cdb5e1c..afb4723 100644
    --- a/src/curl_download.c
    +++ b/src/curl_download.c
    @@ -162,6 +162,7 @@ int curl_download_uri ( const char *uri, FILE *f, DownloadMapOptions *options, D
    }
    if (vik_verbose)
    curl_easy_setopt ( curl, CURLOPT_VERBOSE, 1 );
    + curl_easy_setopt ( curl, CURLOPT_NOSIGNAL, 1 ); // Yep, we're a multi-threaded program so don't let signals mess it up!
    curl_easy_setopt ( curl, CURLOPT_URL, uri );
    curl_easy_setopt ( curl, CURLOPT_WRITEDATA, f );
    curl_easy_setopt ( curl, CURLOPT_WRITEFUNCTION, curl_write_func);

     
  • Rob Norris

    Rob Norris - 2011-04-05

    Fix confirmed and is applied to the git master: 8cd9c9918dad02c1682887e0cbe0269a6717b47d

    However this applies to *all* versions of Viking and should be applied to at least the 'stable' 1.0.X series (and probably the 1.1.X series too).

     
  • Rob Norris

    Rob Norris - 2011-04-05
    • status: open --> pending-fixed
     
  • SourceForge Robot

    • status: pending-fixed --> closed-fixed
     
  • SourceForge Robot

    This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 21 days (the time period specified by
    the administrator of this Tracker).

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks