* migrate redirect_buffer logic to StrBuf, valgrind reported some related errors.
[citadel.git] / citadel / modules / network / serv_network.c
index 6e053c961edc1de8fb1c427973b014b08a2610a1..71f895c48b9b45ab336e04b906013978dd646ee0 100644 (file)
@@ -716,20 +716,17 @@ void network_spool_msg(long msgnum, void *userdata) {
                                fprintf(sc->digestfp, "Subject: %s\n", msg->cm_fields['U']);
                        }
 
-                       CC->redirect_buffer = malloc(SIZ);
-                       CC->redirect_len = 0;
-                       CC->redirect_alloc = SIZ;
-
+                       CC->redirect_buffer = NewStrBufPlain(NULL, SIZ);
+                       
                        safestrncpy(CC->preferred_formats, "text/plain", sizeof CC->preferred_formats);
                        CtdlOutputPreLoadedMsg(msg, MT_CITADEL, HEADERS_NONE, 0, 0, 0);
 
-                       striplt(CC->redirect_buffer);
-                       fprintf(sc->digestfp, "\n%s\n", CC->redirect_buffer);
+                       StrBufTrim(CC->redirect_buffer);
+                       fwrite(HKEY("\n"), 1, sc->digestfp);
+                       fwrite(SKEY(CC->redirect_buffer), 1, sc->digestfp);
+                       fwrite(HKEY("\n"), 1, sc->digestfp);
 
-                       free(CC->redirect_buffer);
-                       CC->redirect_buffer = NULL;
-                       CC->redirect_len = 0;
-                       CC->redirect_alloc = 0;
+                       FreeStrBuf(&CC->redirect_buffer);
 
                        sc->num_msgs_spooled += 1;
                        free(msg);