summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libetpanstuff/mailmime_decode.c_arm_031_patch
blob: 2963a1483daa8ffa956c61693b65530b2eae3e9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
--- mailmime_decode.c.orig	2003-12-18 13:52:20.000000000 +0100
+++ mailmime_decode.c	2003-12-18 13:50:46.000000000 +0100
@@ -102,8 +102,8 @@
   size_t cur_token;
   int r;
   int res;
-  char * str;
-  char * wordutf8;
+  char * str = 0;
+  char * wordutf8 = 0;
   int type;
 
   cur_token = * index;
@@ -147,14 +147,14 @@
 	goto free;
       }
 
-      if (mmap_string_append(gphrase, wordutf8) == NULL) {
+      if (wordutf8==NULL || mmap_string_append(gphrase, wordutf8) == NULL) {
 	mailmime_encoded_word_free(word);
-        free(wordutf8);
+        if (wordutf8) free(wordutf8);
 	res = MAILIMF_ERROR_MEMORY;
 	goto free;
       }
       mailmime_encoded_word_free(word);
-      free(wordutf8);
+      if (wordutf8) free(wordutf8);
       first = FALSE;
     }
     else if (r == MAILIMF_ERROR_PARSE) {
@@ -183,14 +183,14 @@
         r = charconv(tocode, default_fromcode, raw_word,
             strlen(raw_word), &wordutf8);
 
-	if (mmap_string_append(gphrase, wordutf8) == NULL) {
-          free(wordutf8);
+	if (wordutf8==NULL || mmap_string_append(gphrase, wordutf8) == NULL) {
+      if (wordutf8)free(wordutf8);
 	  mailimf_word_free(raw_word);
 	  res = MAILIMF_ERROR_MEMORY;
 	  goto free;
 	}
 
-        free(wordutf8);
+    if (wordutf8) free(wordutf8);
 	mailimf_word_free(raw_word);
 	first = FALSE;
       }