Summary: | escaped characters in accounts.cfg are dealt with incorrectly / accounts.cfg becomes very large | ||
---|---|---|---|
Product: | Telepathy | Reporter: | Simon McVittie <smcv> |
Component: | mission-control | Assignee: | Simon McVittie <smcv> |
Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
Severity: | major | ||
Priority: | high | CC: | ken.vandine, vivek |
Version: | git master | Keywords: | patch |
Hardware: | Other | ||
OS: | All | ||
URL: | http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/backslash | ||
Whiteboard: | review+ | ||
i915 platform: | i915 features: |
Description
Simon McVittie
2010-06-15 10:46:50 UTC
> static gchar * > get_value (const McpAccountManager *ma, > const gchar *acct, > const gchar *key) > { > McdPluginAccountManager *self = MCD_PLUGIN_ACCOUNT_MANAGER (ma); > return g_key_file_get_value (self->keyfile, acct, key, NULL); ^^^^^^^^^ > } but: > static void > set_value (const McpAccountManager *ma, > const gchar *acct, > const gchar *key, > const gchar *value) > { > McdPluginAccountManager *self = MCD_PLUGIN_ACCOUNT_MANAGER (ma); > > if (value != NULL) > g_key_file_set_string (self->keyfile, acct, key, value); ^^^^^^^^^^ > else > g_key_file_remove_key (self->keyfile, acct, key, NULL); > } This is not how you do GKeyFile. See attached branch. Looks right. Couldn't find any stray (_get/_set)_strings any more. Fixed in git, will be in 5.5.2. Some notes for any users who've been hit by this bug: Working around excessively large accounts.cfg ============================================= If one of your accounts has a parameter that contains a special character (backslash, tab or newline), it may have made your ~/.mission-control/accounts/accounts.cfg extremely large (multiple megabytes). This bug exists in versions 5.5.0 and 5.5.1. First, make sure you're running a version of MC that doesn't have this bug (either 5.4.x, or 5.5.2 or later). To do that, install the new version, then log out and back in (or kill the mission-control-5 process). The best way to repair a huge accounts.cfg is to remove and re-create the account that caused it, preferably via the normal account editing UI in Empathy. If the account has become so large that Empathy's account editing UI no longer works, you can do the same via the command line, with the "mc-tool" utility provided with Mission Control. First, list your accounts: mc-tool list This will output a list of account IDs, something like: gabble/jabber/telepathy-user_40example_2ecom0 haze/facebook/telepathy-user0 idle/irc/telepathy-user0 salut/local_xmpp/account0 You can examine an account with a command like: mc-tool show haze/facebook/telepathy-user0 For a typical account, you'll get a small amount of output (about 15 lines in a terminal). If you get huge numbers of backslashes instead, the account has been affected by this bug. You can delete an account with a command like: mc-tool remove haze/facebook/telepathy-user0 accounts.cfg should now reduce to a sensible size (about 15 lines per account, which might add up to a few kilobytes if you have lots of accounts), and you can re-create the account using Empathy. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.