[Player-dev] CN-Client: Upgrade Experience URL "components" is garbage.

[Player-dev] CN-Client: Upgrade Experience URL "components" is garbage.

Daniel Yek dyek at real.com
Tue Aug 8 14:13:00 PDT 2006


Thanks Bob.

This is now checked into HEAD.

-- 
Daniel Yek

At 12:47 PM 8/8/2006, Bob Clark wrote:
>This looks good.
>
>--Bob
>
>>Modified by: 
>><http://lists.helixcommunity.org/mailman/listinfo/player-dev>dyek at real.com
>>Date: 06/29/2006
>>Project: Helix Player
>>Bug Number: 5184
>>Bug URL: 
>><https://bugs.helixcommunity.org/show_bug.cgi?id=5184>https://bugs.helixcommunity.org/show_bug.cgi?id=5184
>>
>>Synopsis: The value of the "components" key in Upgrade Experience URL is
>>garbage.
>>
>>Overview:
>>The Upgrade Experience URL sometimes looks like this:
>><https://.../redirect/?action=CheckUpdate&components=Hx%AE%08&playerVersion=10.1.0.2202...>https://.../redirect/?action=CheckUpdate&components=Hx%AE%08&playerVersion=10.1.0.2202...
>>
>>The "components" contains garbage.
>>
>>This is caused by upgrade.cpp hxplay_request_upgrade_dialog_new() freeing
>>the string resulting in a dangling pointer:
>>
>>g_object_set_data(G_OBJECT(dialog), "components", uri_str->str);
>>g_string_free(uri_str, TRUE);
>>
>>g_object_set_data() is associative table and the data can be any value (no
>>memory management for data).
>>
>>
>>The fix is to free only GString, but delay freeing the C string:
>>g_string_free(uri_str, FALSE);
>>
>>The C string is freed in hxplay_request_upgrade_dialog_destroy():
>>g_free(g_object_get_data(G_OBJECT(dialog), "components"));
>>
>>This bug is in both Bingo and HEAD, but this code review is for HEAD only.
>>The PR is for Bingo.
>>
>>
>>Files Modified:
>>player/app/gtk/upgrade.cpp - As described above.
>>
>>Image Size and Heap Use impact (Client -Only):
>>None.
>>
>>Platforms and Profiles Affected:
>>Linux
>>
>>Platforms and Profiles Build Verified:
>>Profile: helix_client_all_define
>>Platform: Fedora Core 5
>>
>>Platforms and Profiles Functionality verified:
>>Profile: helix_client_all_define
>>Platform: Fedora Core 5
>>
>>Branch: HEAD
>>
>>Copyright assignment: I am a RealNetworks employee.
>>
>>
>>Index: upgrade.cpp
>>===================================================================
>>RCS file: /cvsroot/player/app/gtk/upgrade.cpp,v
>>retrieving revision 1.13
>>diff -u -w -r1.13 upgrade.cpp
>>--- upgrade.cpp 13 Dec 2004 23:31:58 -0000      1.13
>>+++ upgrade.cpp 3 Aug 2006 09:57:04 -0000
>>@@ -101,6 +101,8 @@
>>   {
>>       glade_xml_destroy (dialog->xml);
>>
>>+    g_free(g_object_get_data(G_OBJECT(dialog), "components"));
>>+
>>       g_free(dialog);
>>   }
>>
>>@@ -260,7 +262,7 @@
>>       gtk_label_set_text(GTK_LABEL(url_label), url);
>>
>>       g_string_free(str, TRUE);
>>-    g_string_free(uri_str, TRUE);
>>+    g_string_free(uri_str, FALSE);
>>
>>       info = g_new0(HXUpgradeRequestDialog, 1);
>>       info->xml = xml;
>>
>>
>>
>>
>>--
>>Daniel Yek
>
>




More information about the Player-dev mailing list
 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.