Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
potential data races in NewChatActivity.java #410
Dear developers of ChatSecureAndroid,
I'm a Ph.D. student and I'm doing research on checking data race for Android apps. I found there are data races that may lead to potential bugs in NewChatActivity.java:
The AsyncTask in "startGroupChat" method writes to field "mRequestedChatId" at line 2173. This task is eventually be called by "onLoadFinished" method at line 300 through method "resolveIntent". However, "onLoadFinished" also uses "mRequestedChatId" at lines 301-303. This lead to data race on "mRequestedChatId". Do you think this race may lead to potential bugs? Do you need synchronization on "mRequestedChatId"?
"mRequestedChatId" is also written by "startChat" method at line 1944 and 1950, this can also be a race with the written at line 2173.
Also, the AsyncTask invokes "showChat" method and "showChat" access the GUI elements "mChatPagerAdapter" and "mChatPager" at line 690 and 700. Android documents say we shouldn't access GUI outside main thread. So this should be a problem. It also leads to a race on these GUI widgets and the Cursor at line 690, since "mChatPagerAdapter", "mChatPager" and the Cursor is also read/written by main thread.