Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp

Issue 1571233003: Fix errors caused by unsafe conversions to/from size_t (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: improved ALLOW_NUMERIC_ARG_TYPES_PROMOTABLE_TO Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 position += length; 195 position += length;
196 } 196 }
197 } else { 197 } else {
198 // FIXME: ideally we would encode the content as a stream without having to fetch it all. 198 // FIXME: ideally we would encode the content as a stream without having to fetch it all.
199 const char* data = resource.data->data(); 199 const char* data = resource.data->data();
200 size_t dataLength = resource.data->size(); 200 size_t dataLength = resource.data->size();
201 Vector<char> encodedData; 201 Vector<char> encodedData;
202 if (!strcmp(contentEncoding, quotedPrintable)) { 202 if (!strcmp(contentEncoding, quotedPrintable)) {
203 quotedPrintableEncode(data, dataLength, encodedData); 203 quotedPrintableEncode(data, dataLength, encodedData);
204 outputBuffer.append(encodedData.data(), encodedData.size()); 204 outputBuffer.append(encodedData.data(), encodedData.size());
205 outputBuffer.append("\r\n", 2); 205 outputBuffer.append("\r\n", 2u);
206 } else { 206 } else {
207 ASSERT(!strcmp(contentEncoding, base64)); 207 ASSERT(!strcmp(contentEncoding, base64));
208 // We are not specifying insertLFs = true below as it would cut the lines with LFs and MHTML requires CRLFs. 208 // We are not specifying insertLFs = true below as it would cut the lines with LFs and MHTML requires CRLFs.
209 base64Encode(data, dataLength, encodedData); 209 base64Encode(data, dataLength, encodedData);
210 const size_t maximumLineLength = 76; 210 const size_t maximumLineLength = 76;
211 size_t index = 0; 211 size_t index = 0;
212 size_t encodedDataLength = encodedData.size(); 212 size_t encodedDataLength = encodedData.size();
213 do { 213 do {
214 size_t lineLength = std::min(encodedDataLength - index, maximumL ineLength); 214 size_t lineLength = std::min(encodedDataLength - index, maximumL ineLength);
215 outputBuffer.append(encodedData.data() + index, lineLength); 215 outputBuffer.append(encodedData.data() + index, lineLength);
216 outputBuffer.append("\r\n", 2); 216 outputBuffer.append("\r\n", 2u);
217 index += maximumLineLength; 217 index += maximumLineLength;
218 } while (index < encodedDataLength); 218 } while (index < encodedDataLength);
219 } 219 }
220 } 220 }
221 } 221 }
222 222
223 void MHTMLArchive::generateMHTMLFooter( 223 void MHTMLArchive::generateMHTMLFooter(
224 const String& boundary, 224 const String& boundary,
225 SharedBuffer& outputBuffer) 225 SharedBuffer& outputBuffer)
226 { 226 {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 } 264 }
265 265
266 DEFINE_TRACE(MHTMLArchive) 266 DEFINE_TRACE(MHTMLArchive)
267 { 267 {
268 visitor->trace(m_mainResource); 268 visitor->trace(m_mainResource);
269 visitor->trace(m_subresources); 269 visitor->trace(m_subresources);
270 visitor->trace(m_subframeArchives); 270 visitor->trace(m_subframeArchives);
271 } 271 }
272 272
273 } 273 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698