[Wocky] Flaw in reciprocal buddy-adding

Greg Hudson ghudson at MIT.EDU
Wed Dec 28 16:19:07 EST 2005


> I assume this is a Gaim bug, but it could conceivably be a jabberd
> bug if the server is expected to provide reciprocal access.  I will
> put this on my list of things to dig into.

It's a Gaim bug.  Here's what happens:

  1. Alice adds a buddy Bob
  2. Bob receives an authorization request for Alice's subscription
  3. Bob approves the request (message sent to server)
  4. Bob's Gaim process sees that Alice is not currently a buddy, and
     displays the reciprocal buddy-adding dialog.  (Like all Gaim
     dialogs, this one is non-modal, so control returns to the main
     loop.)
  5. Bob's Gaim receives a roster push from the server containing a
     buddy entry for Alice, with a subscription type of 'From'.  Bob's
     Gaim stuffs that into the 'Buddies' group since no group is
     specified.
  6. Bob finishes filling out the reciprocal buddy-adding form, thus
     asking Gaim to add Alice to his 'Buddies' group.  (If Bob chooses
     a different group, then things actually work.)
  7. Bob's Gaim sees that Alice is already a buddy, due to the roster
     push in step 5, and does nothing.  Bob may as well have clicked
     cancel on the reciprocal buddy-adding dialog.

There is clearly an impedance mismatch between Jabber, where you can
have a buddy entry but not have requested subscription rights, and
Gaim, which was built around the simpler AIM model.  Also, it's not
clear to me that Gaim is making a wise decision by sticking ungrouped
roster entries in the 'Buddies' group.

Confusing matters, the conditional in step 7 only appears on the gaim
1.5 branch, along with a bunch of other work which never seems to have
made it to the mainline.  So Gaim 2.0 probably doesn't manifest this
bug, but might manifest other bugs instead.

I will test some candidate fixes soon, and will also try this scenario
and some related scenarios in the Gaim 2.0 beta.



More information about the Wocky mailing list