~ubuntu-branches/ubuntu/trusty/xulrunner/trusty

« back to all changes in this revision

Viewing changes to mailnews/mime/src/mimei.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Devid Antonio Filoni
  • Date: 2008-08-25 13:04:18 UTC
  • mfrom: (1.1.12 upstream)
  • Revision ID: james.westby@ubuntu.com-20080825130418-ck1i2ms384tzb9m0
Tags: 1.8.1.16+nobinonly-0ubuntu1
* New upstream release (taken from upstream CVS), LP: #254618.
* Fix MFSA 2008-35, MFSA 2008-34, MFSA 2008-33, MFSA 2008-32, MFSA 2008-31,
  MFSA 2008-30, MFSA 2008-29, MFSA 2008-28, MFSA 2008-27, MFSA 2008-25,
  MFSA 2008-24, MFSA 2008-23, MFSA 2008-22, MFSA 2008-21, MFSA 2008-26 also
  known as CVE-2008-2933, CVE-2008-2785, CVE-2008-2811, CVE-2008-2810,
  CVE-2008-2809, CVE-2008-2808, CVE-2008-2807, CVE-2008-2806, CVE-2008-2805,
  CVE-2008-2803, CVE-2008-2802, CVE-2008-2801, CVE-2008-2800, CVE-2008-2798.
* Drop 89_bz419350_attachment_306066 patch, merged upstream.
* Bump Standards-Version to 3.8.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1086
1086
                return nsCRT::strdup(buf);
1087
1087
          else
1088
1088
                {
1089
 
                  char *s = (char *)PR_MALLOC(strlen(higher) + strlen(buf) + 3);
 
1089
                  PRUint32 slen = strlen(higher) + strlen(buf) + 3;
 
1090
                  char *s = (char *)PR_MALLOC(slen);
1090
1091
                  if (!s)
1091
1092
                        {
1092
1093
                          PR_Free(higher);
1093
1094
                          return 0;  /* MIME_OUT_OF_MEMORY */
1094
1095
                        }
1095
 
                  PL_strcpy(s, higher);
1096
 
                  PL_strcat(s, ".");
1097
 
                  PL_strcat(s, buf);
 
1096
                  PL_strncpyz(s, higher, slen);
 
1097
                  PL_strcatn(s, slen, ".");
 
1098
                  PL_strcatn(s, slen, buf);
1098
1099
                  PR_Free(higher);
1099
1100
                  return s;
1100
1101
                }
1228
1229
          }
1229
1230
        }
1230
1231
 
1231
 
  result = (char *) PR_MALLOC(strlen(url) + strlen(part) + 10);
 
1232
  PRUint32 resultlen = strlen(url) + strlen(part) + 10;
 
1233
  result = (char *) PR_MALLOC(resultlen);
1232
1234
  if (!result) return 0;
1233
1235
 
1234
1236
  if (part_begin)
1247
1249
        }
1248
1250
  else
1249
1251
        {
1250
 
          PL_strcpy(result, url);
 
1252
          PL_strncpyz(result, url, resultlen);
1251
1253
          if (got_q)
1252
 
                PL_strcat(result, "&part=");
 
1254
                PL_strcatn(result, resultlen, "&part=");
1253
1255
          else
1254
 
                PL_strcat(result, "?part=");
 
1256
                PL_strcatn(result, resultlen, "?part=");
1255
1257
        }
1256
1258
 
1257
 
  PL_strcat(result, part);
 
1259
  PL_strcatn(result, resultlen, part);
1258
1260
 
1259
1261
  if (part_end && *part_end)
1260
 
        PL_strcat(result, part_end);
 
1262
        PL_strcatn(result, resultlen, part_end);
1261
1263
 
1262
1264
  /* Semi-broken kludge to omit a trailing "?part=0". */
1263
1265
  {
1286
1288
          *whereCurrent = 0;
1287
1289
  }
1288
1290
        
1289
 
  result = (char *) PR_MALLOC(strlen(url) + strlen(imappart) + strlen(libmimepart) + 17);
 
1291
  PRUint32 resultLen = strlen(url) + strlen(imappart) + strlen(libmimepart) + 17;
 
1292
  result = (char *) PR_MALLOC(resultLen);
1290
1293
  if (!result) return 0;
1291
1294
 
1292
 
  PL_strcpy(result, url);
1293
 
  PL_strcat(result, "/;section=");
1294
 
  PL_strcat(result, imappart);
1295
 
  PL_strcat(result, "?part=");
1296
 
  PL_strcat(result, libmimepart);
1297
 
  result[strlen(result)] = 0;
 
1295
  PL_strncpyz(result, url, resultLen);
 
1296
  PL_strcatn(result, resultLen, "/;section=");
 
1297
  PL_strcatn(result, resultLen, imappart);
 
1298
  PL_strcatn(result, resultLen, "?part=");
 
1299
  PL_strcatn(result, resultLen, libmimepart);
1298
1300
 
1299
1301
  if (whereCurrent)
1300
1302
          *whereCurrent = '/';
1604
1606
   else if (nsCRT::strcmp(options->part_to_load, "1"))  /* not 1 */
1605
1607
   {
1606
1608
     const char *prefix = "1.";
1607
 
     char *s = (char *) PR_MALLOC(strlen(options->part_to_load) +
1608
 
       strlen(prefix) + 1);
 
1609
     PRUint32 slen = strlen(options->part_to_load) + strlen(prefix) + 1;
 
1610
     char *s = (char *) PR_MALLOC(slen);
1609
1611
     if (!s) return MIME_OUT_OF_MEMORY;
1610
 
     PL_strcpy(s, prefix);
1611
 
     PL_strcat(s, options->part_to_load);
 
1612
     PL_strncpyz(s, prefix, slen);
 
1613
     PL_strcatn(s, slen, options->part_to_load);
1612
1614
     PR_Free(options->part_to_load);
1613
1615
     options->part_to_load = s;
1614
1616
   }