[haiku-commits] haiku: hrev43602 - src/apps/mail

  • From: stpere@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 3 Jan 2012 00:32:56 +0100 (CET)

hrev43602 adds 1 changeset to branch 'master'
old head: de9c457a3808ddf0cc6794ca1a24dbd2be7e57bb
new head: d79ded8a44c4f6bcc36ef6c6a5861236345c19d9

----------------------------------------------------------------------------

d79ded8: Mail: various checks of malloc returns + memory leak fix
  
  CID 891.

                                [ Philippe Saint-Pierre <stpere@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev43602
Commit:      d79ded8a44c4f6bcc36ef6c6a5861236345c19d9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d79ded8
Author:      Philippe Saint-Pierre <stpere@xxxxxxxxx>
Date:        Mon Jan  2 23:30:18 2012 UTC

----------------------------------------------------------------------------

1 files changed, 14 insertions(+), 1 deletions(-)
src/apps/mail/Content.cpp |   15 ++++++++++++++-

----------------------------------------------------------------------------

diff --git a/src/apps/mail/Content.cpp b/src/apps/mail/Content.cpp
index 4d76c79..d8e45c0 100644
--- a/src/apps/mail/Content.cpp
+++ b/src/apps/mail/Content.cpp
@@ -716,6 +716,8 @@ TContentView::MessageReceived(BMessage *msg)
                                        break;
 
                                char *signature = (char *)malloc(size);
+                               if (signature == NULL)
+                                       break;
                                ssize_t bytesRead = file.Read(signature, size);
                                if (bytesRead < B_OK) {
                                        free (signature);
@@ -2297,6 +2299,9 @@ TTextView::Reader::ParseMail(BMailContainer *container,
                                return false;
 
                        hyper_text *enclosure = (hyper_text 
*)malloc(sizeof(hyper_text));
+                       if (enclosure == NULL)
+                               return false;
+
                        memset(enclosure, 0, sizeof(hyper_text));
 
                        enclosure->type = TYPE_ENCLOSURE;
@@ -2324,6 +2329,9 @@ TTextView::Reader::ParseMail(BMailContainer *container,
                                count--;
                } else if (fIncoming) {
                        hyper_text *enclosure = (hyper_text 
*)malloc(sizeof(hyper_text));
+                       if (enclosure == NULL)
+                               return false;
+
                        memset(enclosure, 0, sizeof(hyper_text));
 
                        enclosure->type = TYPE_ENCLOSURE;
@@ -2397,13 +2405,18 @@ TTextView::Reader::Process(const char *data, int32 
data_len, bool isHeader)
                                count = 0;
 
                                hyper_text *enclosure = (hyper_text 
*)malloc(sizeof(hyper_text));
+                               if (enclosure == NULL)
+                                       return false;
+
                                memset(enclosure, 0, sizeof(hyper_text));
                                fView->GetSelection(&enclosure->text_start,
                                                                        
&enclosure->text_end);
                                enclosure->type = type;
                                enclosure->name = strdup(url.String());
-                               if (enclosure->name == NULL)
+                               if (enclosure->name == NULL) {
+                                       free(enclosure);
                                        return false;
+                               }
 
                                Insert(&data[loop], urlLength, true, isHeader);
                                enclosure->text_end += urlLength;


Other related posts:

  • » [haiku-commits] haiku: hrev43602 - src/apps/mail - stpere