GNOME Bugzilla – Bug 55674
gnomecard crashes when "Categories" field is deleted
Last modified: 2004-12-22 21:47:04 UTC
NOTE: please mark bug 55663 as a duplicate of this one... I created that one through the bug-buddy program, but now I can't modify it. If a record has a non-null "Categories", and the text of the field is deleted, when the user attempts to save the change, gnomecard crashes and the GnomeCard.gcrd file is zeroed out. When the change is made to the "in-memory" database, i.e., when the record modification is applied either via the "apply" or "ok" buttons, the following error appears four times in the terminal window that started gnomecard: GLib-CRITICAL **: file gstring.c: line 294 (g_string_append): assertion `val != NULL' failed. To reproduce this problem, use the following VCARD entry in the GnomeCard.gcrd file: BEGIN:VCARD FN:Jay St. Pierre N:St. Pierre;Jay REV:2001-06-03T19:16:41 CATEGORIES;QUOTED-PRINTABLE:Unknown END:VCARD Then use gnomecard to delete the text in the "Categories" field. I have marked this bug as "major" because it zeros out the GnomeCard.gcrd file. Even though the database can be recovered using one of the ~# files, the novice user doesn't know this, and will just think they've lost all their information. Apparently, judging from the behavior of gaby, the appropriate action to take when the "Categories" field is deleted is to just remove the CATEGORIES line from the VCARD record. The debugging information attached below came from bug-buddy, although I did not submit this bug via bug-buddy. -Jay Debugging Information: (no debugging symbols found)...0x404f78c9 in __wait4 () from /lib/libc.so.6
+ Trace 5873
I think I've found the problem, but the best solution is not clear. Basically what's going on is that gnomecard_property_used in my.c gets called each time the "categories" field is edited, and that function always sets the prop->used value to TRUE, regardless the content of the field. -Jay, 6-3-2001
*** Bug 55663 has been marked as a duplicate of this bug. ***
*** Bug 57041 has been marked as a duplicate of this bug. ***
Note that bug 60965 is a duplicate of this bug. However, in my unfamiliarity with bug stomping policies, I'm not sure which should be closed as a duplicate of the other. Also note that I poked around the code with gdb, but could only determine that there is buffer overflow/access to an invalid pointer in vobject.c This files apparently came from Apple orignally, and there are several variants out there (e.g., KDE has a modified version), but I haven't been able to figure out what exactly is going wrong, nor what the "correct" fix is.
Actually this works for me - Gnomecard does not crash, though I also get the assertion you quoted above. Does the problem still occur in Gnomecard 1.4.4 or the latest CVS version?
eh, nevermind. I did not try saving after deleting the text from that field... This bug still exists.
*** This bug has been marked as a duplicate of 60965 ***