Invalid read in cache code when switching images
- Add Tiny Sepuku comic and select it
- Go to the first comic
- Spend a while going forwards, then randomly backwards and forwards
- You might encounter the following invalid read detected by valgrind:
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.733: id: 10/23/03
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.733: uri: http://picayune.uclick.com/comics/tiny/2003/tiny031023.gif
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.735: CACHE: uri http://picayune.uclick.com/comics/tiny/2003/tiny031023.gif
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.735: CACHE: image size 91147
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.736: CACHE: caching (disk) /home/jtojnar/.cache/buoh/http:__picayune.uclick.com_comics_cragn_2021_cragn210101.gif
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.738: CACHE: removing http://picayune.uclick.com/comics/cragn/2021/cragn210101.gif
==2700296== Thread 1:
==2700296== Invalid read of size 8
==2700296== at 0x409F59: buoh_comic_cache_set_image (buoh-comic-cache.c:280)
==2700296== by 0x40A168: buoh_comic_cache_get_image (buoh-comic-cache.c:327)
==2700296== by 0x40A316: buoh_comic_cache_get_pixbuf (buoh-comic-cache.c:376)
==2700296== by 0x40D3BC: buoh_comic_get_property (buoh-comic.c:232)
==2700296== by 0x52F47B0: g_object_get_valist (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x52F4A36: g_object_get (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x40DAD9: buoh_comic_get_pixbuf (buoh-comic.c:326)
==2700296== by 0x40F98C: buoh_view_comic_load (buoh-view-comic.c:750)
==2700296== by 0x40F98C: bouh_view_comic_changed_comic_cb (buoh-view-comic.c:590)
==2700296== by 0x52EEC9A: g_cclosure_marshal_VOID__PARAM (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x52EBF69: g_closure_invoke (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x52FFB74: signal_emit_unlocked_R (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x530A5E8: g_signal_emit_valist (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== Address 0xb4ee848 is 8 bytes inside a block of size 16 free'd
==2700296== at 0x4839900: free (in /nix/store/l7qvi4rjqh0b64d9pdjj8vxkwh2ibynz-valgrind-3.16.1/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==2700296== by 0x5395633: g_free (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x537B7EC: g_hash_table_remove_node (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x537C7CF: g_hash_table_remove_internal (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x537D1C3: g_hash_table_remove (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x409F54: buoh_comic_cache_set_image (buoh-comic-cache.c:278)
==2700296== by 0x40A168: buoh_comic_cache_get_image (buoh-comic-cache.c:327)
==2700296== by 0x40A316: buoh_comic_cache_get_pixbuf (buoh-comic-cache.c:376)
==2700296== by 0x40D3BC: buoh_comic_get_property (buoh-comic.c:232)
==2700296== by 0x52F47B0: g_object_get_valist (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x52F4A36: g_object_get (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x40DAD9: buoh_comic_get_pixbuf (buoh-comic.c:326)
==2700296== Block was alloc'd at
==2700296== at 0x483A9A2: calloc (in /nix/store/l7qvi4rjqh0b64d9pdjj8vxkwh2ibynz-valgrind-3.16.1/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==2700296== by 0x5395599: g_malloc0 (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x40E879: buoh_view_comic_load_finished (buoh-view-comic.c:686)
==2700296== by 0x52EDDD9: g_cclosure_marshal_VOID__VOID (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x52EBF69: g_closure_invoke (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x52FFB74: signal_emit_unlocked_R (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x530A5E8: g_signal_emit_valist (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x530A841: g_signal_emit (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libgobject-2.0.so.0.6600.3)
==2700296== by 0x40AD65: buoh_comic_loader_job_finished (buoh-comic-loader.c:210)
==2700296== by 0x538B917: g_idle_dispatch (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x538C5E2: g_main_dispatch (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296== by 0x538FB04: g_main_context_dispatch (in /nix/store/whid1h4kmnkqxdffyfqnp72jhl9wc0jf-glib-2.66.3/lib/libglib-2.0.so.0.6600.3)
==2700296==
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.746: CACHE: cache size 946171
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.747: CACHE: caching (memory) http://picayune.uclick.com/comics/tiny/2003/tiny031023.gif
** (.buoh-wrapped:2700296): DEBUG: 19:42:43.897: read chunk
** (.buoh-wrapped:2700296): DEBUG: 19:42:44.049: CACHE: cache size 1037318
** (.buoh-wrapped:2700296): DEBUG: 19:42:44.049: canceled . . .
** (.buoh-wrapped:2700296): DEBUG: 19:42:44.050: CACHE: return image from disk
** (.buoh-wrapped:2700296): DEBUG: 19:42:44.050: thread died
** (.buoh-wrapped:2700296): DEBUG: 19:42:44.050: is the current pixbuf