fix segfault
[apps/madmutt.git] / rfc3676.c
index b1a2e01..d359f25 100644 (file)
--- a/rfc3676.c
+++ b/rfc3676.c
@@ -20,6 +20,8 @@
 #include <sys/wait.h>
 #include <sys/stat.h>
 
+#include <lib-lib/mem.h>
+
 #include "mutt.h"
 #include "mutt_curses.h"
 #include "ascii.h"
@@ -136,13 +138,15 @@ static void print_flowed_line (char *line, STATE * s, int ql) {
 int rfc3676_handler (BODY * a, STATE * s) {
   int bytes = a->length;
   char buf[LONG_STRING];
-  char *curline = str_dup ("");
+  char *curline = p_new(char, 1);
   char *t = NULL;
   unsigned int curline_len = 1,
                quotelevel = 0, newql = 0;
   int buf_off, buf_len;
   int delsp = 0, fixed = 0;
 
+  *curline='\0';
+
   /* respect DelSP of RfC3676 only with f=f parts */
   if ((t = (char*) mutt_get_parameter ("delsp", a->parameter))) {
     delsp = str_len (t) == 3 && ascii_strncasecmp (t, "yes", 3) == 0;
@@ -220,7 +224,7 @@ int rfc3676_handler (BODY * a, STATE * s) {
     }
 
   }
-  mem_free (&curline);
+  p_delete(&curline);
   return (0);
 }