Mercurial > pidgin.yaz
annotate README.MTN @ 31518:b39b6d0008c5
upnp: Asynch-ronize the callbacks from UPnP to calling code. Refs #12387
I have no idea if this will resolve the crashes, but with the help of the
packet capture, I /think/ these are correct.
Short summary: it's possible for the callback to fire (and ar be freed) before
the top-level function (purple_upnp_cancel_port_mapping) returns, even though
cancel_port_mapping returns the now-invalid ar (which may lead to a subsequent
use-after-free).
At least one call path through the code that I think leads to this (backed
up by one of the debug logs I looked at):
purple_upnp_cancel_port_mapping(...)
do_port_mapping_cb (has_control_mapping == TRUE, ar->add == FALSE)
purple_upnp_generate_action_message_and_send(..., done_port_mapping_cb, ar)
/* We fail to parse the URL (see some debug logs) */
done_port_mapping_cb
ar->cb(FALSE, cbdata)
return;
return;
return;
return ar;
...and something which calls:
do_port_mapping_cb(has_control_mapping == TRUE, ar->add == TRUE)
ar->cb(FALSE, cbdata)
g_free(ar)
return;
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Tue, 28 Dec 2010 05:37:20 +0000 |
parents | e0bcb8cfda74 |
children |
rev | line source |
---|---|
16176
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
1 If you plan to use Pidgin, Finch and libpurple from our Monotone repository, |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
2 PLEASE read this message in its entirety! |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
3 |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
4 Pidgin, Finch, and libpurple are a fast-moving project with a somewhat regular |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
5 release schedule. Due to the rate of development, the code in our Monotone |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
6 repository undergoes frequent bursts of massive changes, often leaving behind |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
7 brokenness and partial functionality while the responsible developers rewrite |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
8 some portion of code or seek to add new features. |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
9 |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
10 What this all boils down to is that the code in our Monotone repository _WILL_ |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
11 sometimes be broken. Because of this, we ask that users who are not interested |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
12 in personally tracking down bugs and fixing them (without a lot of |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
13 assistance from the developers!) use only released versions. Since releases |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
14 will be made often, this should not prevent anyone from using the newest, |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
15 shiniest features -- but it will prevent users from having to deal with ugly |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
16 development bugs that we already know about but haven't gotten around to fixing. |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
17 |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
18 If you are interested in hacking on Pidgin, Finch, and/or libpurple, please |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
19 check out the information available at: http://developer.pidgin.im |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
20 |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
21 By far the best documentation, however, is the documented code. If you have |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
22 doxygen, you can run "make docs" in the toplevel directory to generate pretty |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
23 documentation. Otherwise (or even if you do!), the header files for each |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
24 subsystem contain documentation for the functions they contain. For instance, |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
25 conversation.h contains documentation for the entire purple_conversation_* |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
26 API, and account.h contains documentation for the purple_account_* API. |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
27 |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
28 If you have questions, please feel free to contact the Pidgin, Finch, and |
23182
e0bcb8cfda74
Use "email" and "Email" consistently. This is potentially controversial,
Richard Laager <rlaager@wiktel.com>
parents:
16176
diff
changeset
|
29 libpurple developers by email at devel@pidgin.im or on IRC at irc.freenode.net |
16176
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
30 in #pidgin. Please do as much homework as you can before contacting us; the |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
31 more you know about your question, the faster and more effectively we can help! |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
32 |
83ec0b408926
Beat some older documentation into submission.
Richard Laager <rlaager@wiktel.com>
parents:
diff
changeset
|
33 Patches should be posted as Trac tickets at: http://developer.pidgin.im |