+ int i;
+
+ silc_free(vcard->full_name);
+ silc_free(vcard->family_name);
+ silc_free(vcard->first_name);
+ silc_free(vcard->middle_names);
+ silc_free(vcard->prefix);
+ silc_free(vcard->suffix);
+ silc_free(vcard->nickname);
+ silc_free(vcard->bday);
+ silc_free(vcard->title);
+ silc_free(vcard->role);
+ silc_free(vcard->org_name);
+ silc_free(vcard->org_unit);
+ silc_free(vcard->categories);
+ silc_free(vcard->catclass);
+ silc_free(vcard->url);
+ silc_free(vcard->label);
+ for (i = 0; i < vcard->num_addrs; i++) {
+ silc_free(vcard->addrs[i].type);
+ silc_free(vcard->addrs[i].pbox);
+ silc_free(vcard->addrs[i].ext_addr);
+ silc_free(vcard->addrs[i].street_addr);
+ silc_free(vcard->addrs[i].city);
+ silc_free(vcard->addrs[i].state);
+ silc_free(vcard->addrs[i].code);
+ silc_free(vcard->addrs[i].country);
+ }
+ silc_free(vcard->addrs);
+ for (i = 0; i < vcard->num_tels; i++) {
+ silc_free(vcard->tels[i].type);
+ silc_free(vcard->tels[i].telnum);
+ }
+ silc_free(vcard->tels);
+ for (i = 0; i < vcard->num_emails; i++) {
+ silc_free(vcard->emails[i].type);
+ silc_free(vcard->emails[i].address);
+ }
+ silc_free(vcard->emails);
+ silc_free(vcard->note);
+ silc_free(vcard->rev);
+ if (!vcard->dynamic)
+ memset(vcard, 0, sizeof(*vcard));
+
+ if (vcard->dynamic) {
+ memset(vcard, 0, sizeof(*vcard));
+ silc_free(vcard);
+ }