assoclist.c, Line 604, no test is done against the contact database to see if there is a non NULL jid. The test could also be done in the Jabber plugin, jabber_groupchat.cpp, near Line 747.
/* call service */
603 if(pszService!=NULL && pvParam!=NULL)
604 *res=CallService(pszService,0,(LPARAM)pvParam);
Producing the following call stack:
Code:
msvcr80d.dll!wcschr(const wchar_t * string=0x00000000, wchar_t ch=L'@') Line 39 + 0x3 bytes C
jabber.dll!JabberNickFromJID(const wchar_t * jid=0x00000000) Line 174 + 0xe bytes C++
jabber.dll!JabberGroupchatJoinDlgProc(HWND__ * hwndDlg=0x00310fae, unsigned int msg=0x00000110, unsigned int wParam=0x000610f4, long lParam=0x0012ee32) Line 752 + 0xb bytes C++
user32.dll!7e418734()
[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
user32.dll!7e423b9c()
user32.dll!7e423591()
user32.dll!7e4237bc()
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e41b4c0()
user32.dll!7e41b50c()
ntdll.dll!7c90eae3()
user32.dll!7e4194be()
user32.dll!7e41d4e4()
user32.dll!7e4243e0()
user32.dll!7e42592c()
user32.dll!7e425981()
user32.dll!7e42559e()
jabber.dll!JabberGroupchatJoinRoomByJid(HWND__ * hwndParent=0x00000000, wchar_t * jid=0x0012ee32) Line 582 + 0x21 bytes C++
jabber.dll!JabberServiceParseXmppURI(unsigned int wParam=0x00000000, long lParam=0x00bcbf10) Line 1700 + 0xe bytes C++
miranda32.exe!CallService(const char * name=0x00bbf9d8, unsigned int wParam=0x00000000, long lParam=0x00bcbf10) Line 670 + 0xb bytes C
> assocmgr.dll!InvokeHandler_Worker(const char * pszClassName=0x00ba0938, const wchar_t * pszParam=0x00bcbe48, int * res=0x0012f898) Line 604 + 0x17 bytes C
assocmgr.dll!InvokeUrlHandler(const wchar_t * pszUrl=0x00bcbe48) Line 650 + 0x11 bytes C
assocmgr.dll!UrlActionAsync(unsigned short * pszUrl=0x00bcbe48) Line 51 + 0x9 bytes C
kernel32.dll!7c82c12c()
ntdll.dll!7c90eac7()
user32.dll!7e431891()
user32.dll!7e431891()
ntdll.dll!7c90d85c()
kernel32.dll!7c8023ed()
miranda32.exe!APCWndProc(HWND__ * hwnd=0x0012fda8, unsigned int msg=0x7e418734, unsigned int wParam=0x000e0990, long lParam=0x00000000) Line 368 C
assocmgr.dll!DdeMessageWindow(HWND__ * hwnd=0x4edbbaca, unsigned int msg=0x000003e0, unsigned int wParam=0x000910ba, long lParam=0x00000000) Line 163 + 0x21 bytes C
msvcr80d.dll!x_ismbbtype_l(localeinfo_struct * plocinfo=0x000003e0, unsigned int tst=0x0012ffb8, int cmask=0x004ec366, int kmask=0x00400000) Line 222 + 0x6f bytes C++
00000001()
miranda32.exe!WinMainCRTStartup() Line 414 C
kernel32.dll!7c816fd7()
Adding the following lines to jabber_groupchat.cpp near line 751 resolves the miranda exception, and presents a join chat without a uid.
if ( jabberJID == NULL )
return FALSE;
TCHAR* nick = JabberNickFromJID( jabberJID );
SetDlgItemText( hwndDlg, IDC_NICK, nick );
mir_free( nick );
Bookmarks