about summary refs log tree commit diff stats
path: root/src/xmpp
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2019-10-06 19:00:46 +0200
committerMichael Vetter <jubalh@iodoru.org>2019-10-06 19:00:46 +0200
commit94b401ab965adc641c90d12231704b13ec28c11c (patch)
tree2d58f3e24b4c4f67860b01164328bd4b907b1c0d /src/xmpp
parent1746f5f8a80f78a02f79a9a17f29ebb0a7b179ec (diff)
downloadprofani-tty-94b401ab965adc641c90d12231704b13ec28c11c.tar.gz
Fix invalid read in muc code
We didn't set the variables to NULL, but the rest of the code depends on
this check.
```
==22201== Invalid read of size 8
==22201==    at 0x44E560: autocomplete_clear (autocomplete.c:69)
==22201==    by 0x427B2C: muc_invites_clear (muc.c:190)
==22201==    by 0x461328: ev_disconnect_cleanup (common.c:59)
==22201==    by 0x463FB5: cl_ev_disconnect (client_events.c:91)
==22201==    by 0x431252: cmd_disconnect (cmd_funcs.c:1234)
==22201==    by 0x47E883: clears_chat_sessions
(test_cmd_disconnect.c:28)
==22201==    by 0x487E9E1: _run_test (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x487ECCC: _run_tests (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x47F1BE: main (unittests.c:629)
==22201==  Address 0x814b690 is 0 bytes inside a block of size 24 free'd
==22201==    at 0x48379AB: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==22201==    by 0x44E5F7: autocomplete_free (autocomplete.c:90)
==22201==    by 0x4278A0: muc_close (muc.c:97)
==22201==    by 0x47DBAA: cmd_join_uses_password_when_supplied
(test_cmd_join.c:169)
==22201==    by 0x487E9E1: _run_test (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x487ECCC: _run_tests (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x47F1BE: main (unittests.c:629)
==22201==  Block was alloc'd at
==22201==    at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==22201==    by 0x44E51B: autocomplete_new (autocomplete.c:57)
==22201==    by 0x427837: muc_init (muc.c:88)
==22201==    by 0x47DA77: cmd_join_uses_password_when_supplied
(test_cmd_join.c:154)
==22201==    by 0x487E9E1: _run_test (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x487ECCC: _run_tests (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x47F1BE: main (unittests.c:629)
```
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/muc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/xmpp/muc.c b/src/xmpp/muc.c
index 89e707a1..1d773479 100644
--- a/src/xmpp/muc.c
+++ b/src/xmpp/muc.c
@@ -69,8 +69,8 @@ typedef struct _muc_room_t {
 
 GHashTable *rooms = NULL;
 GHashTable *invite_passwords = NULL;
-Autocomplete invite_ac;
-Autocomplete confservers_ac;
+Autocomplete invite_ac = NULL;
+Autocomplete confservers_ac = NULL;
 
 static void _free_room(ChatRoom *room);
 static gint _compare_occupants(Occupant *a, Occupant *b);
@@ -100,6 +100,8 @@ muc_close(void)
     g_hash_table_destroy(invite_passwords);
     rooms = NULL;
     invite_passwords = NULL;
+    invite_ac = NULL;
+    confservers_ac = NULL;
 }
 
 void