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

Side by Side Diff: chrome/browser/safe_browsing/protocol_parser.cc

Issue 1548133002: Switch to standard integer types in chrome/browser/, part 3 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Parse the data returned from the SafeBrowsing v2.1 protocol response. 5 // Parse the data returned from the SafeBrowsing v2.1 protocol response.
6 6
7 // TODOv3(shess): Review these changes carefully. 7 // TODOv3(shess): Review these changes carefully.
8 8
9 #include <stdint.h>
9 #include <stdlib.h> 10 #include <stdlib.h>
10 11
11 #include "base/format_macros.h" 12 #include "base/format_macros.h"
12 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/macros.h"
13 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/string_split.h" 16 #include "base/strings/string_split.h"
15 #include "base/strings/stringprintf.h" 17 #include "base/strings/stringprintf.h"
16 #include "base/sys_byteorder.h" 18 #include "base/sys_byteorder.h"
17 #include "base/time/time.h" 19 #include "base/time/time.h"
18 #include "build/build_config.h" 20 #include "build/build_config.h"
19 #include "chrome/browser/safe_browsing/protocol_parser.h" 21 #include "chrome/browser/safe_browsing/protocol_parser.h"
20 #include "chrome/browser/safe_browsing/safe_browsing_util.h" 22 #include "chrome/browser/safe_browsing/safe_browsing_util.h"
21 23
22 namespace safe_browsing { 24 namespace safe_browsing {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 // Copy data out of the buffer. 67 // Copy data out of the buffer.
66 bool GetData(void* ptr, size_t l) { 68 bool GetData(void* ptr, size_t l) {
67 const void* buf_ptr; 69 const void* buf_ptr;
68 if (!RefData(&buf_ptr, l)) 70 if (!RefData(&buf_ptr, l))
69 return false; 71 return false;
70 72
71 memcpy(ptr, buf_ptr, l); 73 memcpy(ptr, buf_ptr, l);
72 return true; 74 return true;
73 } 75 }
74 76
75 // Read a 32-bit integer in network byte order into a local uint32. 77 // Read a 32-bit integer in network byte order into a local uint32_t.
76 bool GetNet32(uint32* i) { 78 bool GetNet32(uint32_t* i) {
77 if (!GetData(i, sizeof(*i))) 79 if (!GetData(i, sizeof(*i)))
78 return false; 80 return false;
79 81
80 *i = base::NetToHost32(*i); 82 *i = base::NetToHost32(*i);
81 return true; 83 return true;
82 } 84 }
83 85
84 // Returns false if there is no data, otherwise fills |*line| with a reference 86 // Returns false if there is no data, otherwise fills |*line| with a reference
85 // to the next line of data in the buffer. 87 // to the next line of data in the buffer.
86 bool GetLine(base::StringPiece* line) { 88 bool GetLine(base::StringPiece* line) {
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 349
348 // BODY = (UINT32 CHUNKDATA)+ 350 // BODY = (UINT32 CHUNKDATA)+
349 // UINT32 = Unsigned 32-bit integer in network byte order 351 // UINT32 = Unsigned 32-bit integer in network byte order
350 // CHUNKDATA = Encoded ChunkData protocol message 352 // CHUNKDATA = Encoded ChunkData protocol message
351 bool ParseChunk(const char* data, 353 bool ParseChunk(const char* data,
352 size_t length, 354 size_t length,
353 std::vector<scoped_ptr<SBChunkData>>* chunks) { 355 std::vector<scoped_ptr<SBChunkData>>* chunks) {
354 BufferReader reader(data, length); 356 BufferReader reader(data, length);
355 357
356 while (!reader.empty()) { 358 while (!reader.empty()) {
357 uint32 l = 0; 359 uint32_t l = 0;
358 if (!reader.GetNet32(&l) || l == 0 || l > reader.length()) 360 if (!reader.GetNet32(&l) || l == 0 || l > reader.length())
359 return false; 361 return false;
360 362
361 const void* p = NULL; 363 const void* p = NULL;
362 if (!reader.RefData(&p, l)) 364 if (!reader.RefData(&p, l))
363 return false; 365 return false;
364 366
365 scoped_ptr<SBChunkData> chunk(new SBChunkData()); 367 scoped_ptr<SBChunkData> chunk(new SBChunkData());
366 if (!chunk->ParseFrom(reinterpret_cast<const unsigned char*>(p), l)) 368 if (!chunk->ParseFrom(reinterpret_cast<const unsigned char*>(p), l))
367 return false; 369 return false;
(...skipping 20 matching lines...) Expand all
388 if (!list.adds.empty() && !list.subs.empty()) 390 if (!list.adds.empty() && !list.subs.empty())
389 formatted_results.append(":"); 391 formatted_results.append(":");
390 if (!list.subs.empty()) 392 if (!list.subs.empty())
391 formatted_results.append("s:").append(list.subs); 393 formatted_results.append("s:").append(list.subs);
392 formatted_results.append("\n"); 394 formatted_results.append("\n");
393 395
394 return formatted_results; 396 return formatted_results;
395 } 397 }
396 398
397 } // namespace safe_browsing 399 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/protocol_parser.h ('k') | chrome/browser/safe_browsing/protocol_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698