X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fnetwork%2Fserv_netspool.c;h=9928c7e4b9f252eec4c9f9831dec5ab3bce9079f;hb=51af14d17696f72e1c4d9beda8aa80a8c5b40376;hp=61ccbc992bdbd0847b4d5b0ba538c60f13377dfb;hpb=d6c68e77c1f007e02b8a1c03bbf0da59251d3775;p=citadel.git diff --git a/citadel/modules/network/serv_netspool.c b/citadel/modules/network/serv_netspool.c index 61ccbc992..9928c7e4b 100644 --- a/citadel/modules/network/serv_netspool.c +++ b/citadel/modules/network/serv_netspool.c @@ -395,6 +395,7 @@ void network_spoolout_room(SpoolControl *sc) */ void network_process_buffer(char *buffer, long size, HashList *working_ignetcfg, HashList *the_netmap, int *netmap_changed) { + long len; struct CitContext *CCC = CC; StrBuf *Buf = NULL; struct CtdlMessage *msg = NULL; @@ -433,8 +434,10 @@ void network_process_buffer(char *buffer, long size, HashList *working_ignetcfg, for (pos = 3; pos < size; ++pos) { field = buffer[pos]; - msg->cm_fields[field] = strdup(&buffer[pos+1]); - pos = pos + strlen(&buffer[(int)pos]); + len = strlen(buffer + pos + 1); + msg->cm_fields[field] = malloc(len + 1); + memcpy (msg->cm_fields[field], buffer+ pos + 1, len + 1); + pos = pos + len + 1; } /* Check for message routing */