X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fmodules%2Fvcard%2Fserv_vcard.c;fp=citadel%2Fmodules%2Fvcard%2Fserv_vcard.c;h=dfd745255b7e31955a5ac035fe9bbe6eff484fe3;hp=5c3a3a7259adfad4a3ef82f8963e23d3742e7a8b;hb=c4609169aa7baf208848e72c16d33a3f892353b8;hpb=85306faf2231501cf896f4227bc6cb30daa6e849 diff --git a/citadel/modules/vcard/serv_vcard.c b/citadel/modules/vcard/serv_vcard.c index 5c3a3a725..dfd745255 100644 --- a/citadel/modules/vcard/serv_vcard.c +++ b/citadel/modules/vcard/serv_vcard.c @@ -429,7 +429,9 @@ int vcard_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) { CtdlDeleteMessages(CCC->room.QRname, NULL, 0, "[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$"); /* Make the author of the message the name of the user. */ - CM_SetField(msg, eAuthor, usbuf.fullname, strlen(usbuf.fullname)); + if (!IsEmptyStr(usbuf.fullname)) { + CM_SetField(msg, eAuthor, usbuf.fullname, strlen(usbuf.fullname)); + } } /* Insert or replace RFC2739-compliant free/busy URL */ @@ -463,7 +465,7 @@ int vcard_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) { CM_FlushField(msg, eExclusiveID); s = vcard_get_prop(v, "UID", 1, 0, 0); - if (s != NULL) { + if (!IsEmptyStr(s)) { CM_SetField(msg, eExclusiveID, s, strlen(s)); if (CM_IsEmpty(msg, eMsgSubject)) { CM_CopyField(msg, eMsgSubject, eExclusiveID); @@ -477,13 +479,13 @@ int vcard_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) { if (s == NULL) { s = vcard_get_prop(v, "N", 1, 0, 0); } - if (s != NULL) { + if (!IsEmptyStr(s)) { CM_SetField(msg, eMsgSubject, s, strlen(s)); } /* Re-serialize it back into the msg body */ ser = vcard_serialize(v); - if (ser != NULL) { + if (!IsEmptyStr(ser)) { StrBuf *buf; long serlen; @@ -526,7 +528,9 @@ int vcard_upload_aftersave(struct CtdlMessage *msg, recptypes *recp) { /* We're interested in user config rooms only. */ - if ( (strlen(CCC->room.QRname) >= 12) && (!strcasecmp(&CCC->room.QRname[11], USERCONFIGROOM)) ) { + if ( !IsEmptyStr(CCC->room.QRname) && + (strlen(CCC->room.QRname) >= 12) && + (!strcasecmp(&CCC->room.QRname[11], USERCONFIGROOM)) ) { is_UserConf = 1; /* It's someone's config room */ } CtdlMailboxName(roomname, sizeof roomname, &CCC->user, USERCONFIGROOM); @@ -677,7 +681,7 @@ void vcard_write_user(struct ctdluser *u, struct vCard *v) { if (ser == NULL) { ser = strdup("begin:vcard\r\nend:vcard\r\n"); } - if (!ser) return; + if (ser == NULL) return; /* This handy API function does all the work for us. * NOTE: normally we would want to set that last argument to 1, to @@ -938,7 +942,9 @@ void vcard_purge(struct ctdluser *usbuf) { msg->cm_magic = CTDLMESSAGE_MAGIC; msg->cm_anon_type = MES_NORMAL; msg->cm_format_type = 0; - CM_SetField(msg, eAuthor, usbuf->fullname, strlen(usbuf->fullname)); + if (!IsEmptyStr(usbuf->fullname)) { + CM_SetField(msg, eAuthor, usbuf->fullname, strlen(usbuf->fullname)); + } CM_SetField(msg, eOriginalRoom, HKEY(ADDRESS_BOOK_ROOM)); CM_SetField(msg, eNodeName, CtdlGetConfigStr("c_nodename"), strlen(CtdlGetConfigStr("c_nodename"))); CM_SetField(msg, eMesageText, HKEY("Purge this vCard\n")); @@ -1420,7 +1426,9 @@ void store_this_ha(struct addresses_to_be_filed *aptr) { vmsg->cm_format_type = FMT_RFC822; CM_SetField(vmsg, eAuthor, HKEY("Citadel")); s = vcard_get_prop(v, "UID", 1, 0, 0); - CM_SetField(vmsg, eExclusiveID, s, strlen(s)); + if (!IsEmptyStr(s)) { + CM_SetField(vmsg, eExclusiveID, s, strlen(s)); + } ser = vcard_serialize(v); if (ser != NULL) { StrBuf *buf;