1. 04 Sep, 1998 2 commits
  2. 01 Sep, 1998 1 commit
  3. 31 Aug, 1998 3 commits
  4. 29 Aug, 1998 1 commit
  5. 28 Aug, 1998 6 commits
  6. 27 Aug, 1998 9 commits
  7. 26 Aug, 1998 3 commits
    • Thomas Roessler's avatar
      Another possible memory leak in rfc822_parse_adrlist. The · 344b71b0
      Thomas Roessler authored
      problem and the patch are pretty much the same as with the
      last fix applied to this file - it's just ',' instaed of
      ';' this time.
      344b71b0
    • Thomas Roessler's avatar
      [patch-0.94.4i.tlr.rfc822_leak.1] Fixing a memory leak in · 17e73c0a
      Thomas Roessler authored
      the rfc822_parse_adrlist().
      
      Some explanations seem to be in order here.  Let's look at
      the code:
      
         386	    else if (*s == ';')
         387	    {
         388	      if (phraselen)
         389	      {
         390		phrase[phraselen] = 0;
         391		add_addrspec (&top, &last, phrase, comment, &commentlen, sizeof (comment) - 1);
         392	      }
         393	      else if (commentlen && !last->personal)
         394	      {
         395		comment[commentlen] = 0;
         396		last->personal = safe_strdup (comment);
         397	      }
         398	#ifdef EXACT_ADDRESS
         399	      if (last && !last->val)
      
      Line 399 contains the change; previously, it looked like
      this:
      
         399'       if (last)
      
         400		last->val = mutt_substrdup (begin, s);
         401	#endif
         402
         403	      /* add group terminator */
         404	      cur = rfc822_new_address ();
         405	      if (last)
         406	      {
         407		last->next = cur;
         408		last = cur;
         409	      }
         410
         411	      phraselen = 0;
         412	      commentlen = 0;
         413	      s++;
         414	      begin = s;
         415	      SKIPWS (begin);
         416	    }
      
      OK, what happens? There are essentially two situations here:
      
      -> We have already parsed a complete address specification
         and know about this fact, but there was no new address
         information.  This is the case if we are parsing
         through addresses like
      
      	undisclosed-recipients:;
      
         or
      
      	recipients: a, b, c,;
      
         (Note the extra ',' before the ';'!)
      
         In this case, some of the other code in rfc822.c has
         already filled in last->val, and we really shouldn't
         overwrite that with a NULL pointer.
      
      -> The ';' finishes an address spec, like in
      
      	recipients: a;
      
         In this case, last is either set by add_addrspec(), or
         it has already been set by some of the previous code
         (comment handling, ...).  Anyway, last->val is still
         NULL, so it is correct to write the complete addr spec
         to last->val.
      17e73c0a
    • Thomas Roessler's avatar
      Error message cosmetics. · 00aa914c
      Thomas Roessler authored
      00aa914c
  8. 25 Aug, 1998 1 commit
  9. 19 Jun, 1998 1 commit
  10. 01 Mar, 2007 1 commit
  11. 18 Jun, 1998 1 commit
  12. 16 Jun, 1998 4 commits
  13. 01 Mar, 2007 1 commit
  14. 16 Jun, 1998 6 commits