about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/otr/otrlibv3.c5
-rw-r--r--src/otr/otrlibv4.c4
-rw-r--r--src/ui/chatwin.c16
-rw-r--r--src/ui/ui.h2
-rw-r--r--tests/unittests/ui/stub_ui.c2
5 files changed, 18 insertions, 11 deletions
diff --git a/src/otr/otrlibv3.c b/src/otr/otrlibv3.c
index 52b9a022..de388b8f 100644
--- a/src/otr/otrlibv3.c
+++ b/src/otr/otrlibv3.c
@@ -181,7 +181,10 @@ otrlib_handle_tlvs(OtrlUserState user_state, OtrlMessageAppOps *ops, ConnContext
                     ui_smp_successful(context->username);
                     ui_trust(context->username);
                 } else {
-                    ui_smp_unsuccessful_sender(context->username);
+                    ProfChatWin *chatwin = wins_get_chat(context->username);
+                    if (chatwin) {
+                        ui_smp_unsuccessful_sender(chatwin);
+                    }
                     ui_untrust(context->username);
                 }
             } else {
diff --git a/src/otr/otrlibv4.c b/src/otr/otrlibv4.c
index 59cd7a0d..ebdc2996 100644
--- a/src/otr/otrlibv4.c
+++ b/src/otr/otrlibv4.c
@@ -206,7 +206,9 @@ cb_handle_smp_event(void *opdata, OtrlSMPEvent smp_event,
         case OTRL_SMPEVENT_FAILURE:
             if (context->smstate->received_question == 0) {
                 if (nextMsg == OTRL_SMP_EXPECT3) {
-                    ui_smp_unsuccessful_sender(context->username);
+                    if (chatwin) {
+                        ui_smp_unsuccessful_sender(chatwin);
+                    }
                 } else if (nextMsg == OTRL_SMP_EXPECT4) {
                     ui_smp_unsuccessful_receiver(context->username);
                 }
diff --git a/src/ui/chatwin.c b/src/ui/chatwin.c
index 301fc45e..e782c0bc 100644
--- a/src/ui/chatwin.c
+++ b/src/ui/chatwin.c
@@ -106,7 +106,8 @@ ui_smp_recipient_initiated(ProfChatWin *chatwin)
 {
     assert(chatwin != NULL);
 
-    win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "%s wants to authenticate your identity, use '/otr secret <secret>'.", chatwin->barejid);
+    win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "",
+        "%s wants to authenticate your identity, use '/otr secret <secret>'.", chatwin->barejid);
 }
 
 void
@@ -114,18 +115,19 @@ ui_smp_recipient_initiated_q(ProfChatWin *chatwin, const char *question)
 {
     assert(chatwin != NULL);
 
-    win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "%s wants to authenticate your identity with the following question:", chatwin->barejid);
+    win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "",
+        "%s wants to authenticate your identity with the following question:", chatwin->barejid);
     win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "  %s", question);
     win_print((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "use '/otr answer <answer>'.");
 }
 
 void
-ui_smp_unsuccessful_sender(const char *const barejid)
+ui_smp_unsuccessful_sender(ProfChatWin *chatwin)
 {
-    ProfChatWin *chatwin = wins_get_chat(barejid);
-    if (chatwin) {
-        win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "", "Authentication failed, the secret you entered does not match the secret entered by %s.", barejid);
-    }
+    assert(chatwin != NULL);
+
+    win_vprint((ProfWin*)chatwin, '!', 0, NULL, 0, 0, "",
+        "Authentication failed, the secret you entered does not match the secret entered by %s.", chatwin->barejid);
 }
 
 void
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 41cc35fe..c1efb9ea 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -70,7 +70,7 @@ void ui_smp_recipient_initiated(ProfChatWin *chatwin);
 void ui_smp_recipient_initiated_q(ProfChatWin *chatwin, const char *question);
 
 void ui_smp_successful(const char *const barejid);
-void ui_smp_unsuccessful_sender(const char *const barejid);
+void ui_smp_unsuccessful_sender(ProfChatWin *chatwin);
 void ui_smp_unsuccessful_receiver(const char *const barejid);
 void ui_smp_aborted(const char *const barejid);
 
diff --git a/tests/unittests/ui/stub_ui.c b/tests/unittests/ui/stub_ui.c
index f3c20627..93dd1ca5 100644
--- a/tests/unittests/ui/stub_ui.c
+++ b/tests/unittests/ui/stub_ui.c
@@ -74,7 +74,7 @@ void ui_smp_recipient_initiated(ProfChatWin *chatwin) {}
 void ui_smp_recipient_initiated_q(ProfChatWin *chatwin, const char *question) {}
 
 void ui_smp_successful(const char * const barejid) {}
-void ui_smp_unsuccessful_sender(const char * const barejid) {}
+void ui_smp_unsuccessful_sender(ProfChatWin *chatwin) {}
 void ui_smp_unsuccessful_receiver(const char * const barejid) {}
 void ui_smp_aborted(const char * const barejid) {}