diff options
Diffstat (limited to 'courgette')
-rw-r--r-- | courgette/disassembler_elf_32.h | 14 | ||||
-rw-r--r-- | courgette/disassembler_elf_32_x86.h | 5 | ||||
-rw-r--r-- | courgette/third_party/bsdiff.h | 10 | ||||
-rw-r--r-- | courgette/third_party/bsdiff_apply.cc | 41 |
4 files changed, 11 insertions, 59 deletions
diff --git a/courgette/disassembler_elf_32.h b/courgette/disassembler_elf_32.h index b1832dc..5c3f8a2 100644 --- a/courgette/disassembler_elf_32.h +++ b/courgette/disassembler_elf_32.h @@ -47,7 +47,7 @@ class DisassemblerElf32 : public Disassembler { // Misc Section Helpers - Elf32_Half SectionHeaderCount() const { + const Elf32_Half SectionHeaderCount() const { return section_header_table_size_; } @@ -60,13 +60,13 @@ class DisassemblerElf32 : public Disassembler { return OffsetToPointer(SectionHeader(id)->sh_offset); } - Elf32_Word SectionBodySize(int id) const { + const Elf32_Word SectionBodySize(int id) const { return SectionHeader(id)->sh_size; } // Misc Segment Helpers - Elf32_Half ProgramSegmentHeaderCount() const { + const Elf32_Half ProgramSegmentHeaderCount() const { return program_header_table_size_; } @@ -76,22 +76,22 @@ class DisassemblerElf32 : public Disassembler { } // The virtual memory address at which this program segment will be loaded - Elf32_Addr ProgramSegmentMemoryBegin(int id) const { + const Elf32_Addr ProgramSegmentMemoryBegin(int id) const { return ProgramSegmentHeader(id)->p_vaddr; } // The number of virtual memory bytes for this program segment - Elf32_Word ProgramSegmentMemorySize(int id) const { + const Elf32_Word ProgramSegmentMemorySize(int id) const { return ProgramSegmentHeader(id)->p_memsz; } // Pointer into the source file for this program segment - Elf32_Addr ProgramSegmentFileOffset(int id) const { + const Elf32_Addr ProgramSegmentFileOffset(int id) const { return ProgramSegmentHeader(id)->p_offset; } // Number of file bytes for this program segment. Is <= ProgramMemorySize. - Elf32_Word ProgramSegmentFileSize(int id) const { + const Elf32_Word ProgramSegmentFileSize(int id) const { return ProgramSegmentHeader(id)->p_filesz; } diff --git a/courgette/disassembler_elf_32_x86.h b/courgette/disassembler_elf_32_x86.h index 28de7cf..6096781 100644 --- a/courgette/disassembler_elf_32_x86.h +++ b/courgette/disassembler_elf_32_x86.h @@ -23,12 +23,13 @@ class DisassemblerElf32X86 : public DisassemblerElf32 { virtual e_machine_values ElfEM() { return EM_386; } protected: + virtual CheckBool RelToRVA(Elf32_Rel rel, RVA* result) - const WARN_UNUSED_RESULT; + const WARN_UNUSED_RESULT; virtual CheckBool ParseRelocationSection( const Elf32_Shdr *section_header, - AssemblyProgram* program) WARN_UNUSED_RESULT; + AssemblyProgram* program) WARN_UNUSED_RESULT; virtual CheckBool ParseRel32RelocsFromSection( const Elf32_Shdr* section) WARN_UNUSED_RESULT; diff --git a/courgette/third_party/bsdiff.h b/courgette/third_party/bsdiff.h index 77897a8..5e5683a 100644 --- a/courgette/third_party/bsdiff.h +++ b/courgette/third_party/bsdiff.h @@ -30,15 +30,12 @@ * 2009-03-31 - Change to use Streams. Move CRC code to crc.{h,cc} * Changed status to an enum, removed unused status codes. * --Stephen Adams <sra@chromium.org> - * 2013-04-10 - Added wrapper to apply a patch directly to files. - * --Joshua Pawlicki <waffles@chromium.org> */ #ifndef COURGETTE_BSDIFF_H_ #define COURGETTE_BSDIFF_H_ #include "base/basictypes.h" -#include "base/file_util.h" namespace courgette { @@ -47,8 +44,7 @@ enum BSDiffStatus { MEM_ERROR = 1, CRC_ERROR = 2, READ_ERROR = 3, - UNEXPECTED_ERROR = 4, - WRITE_ERROR = 5 + UNEXPECTED_ERROR = 4 }; class SourceStream; @@ -68,10 +64,6 @@ BSDiffStatus ApplyBinaryPatch(SourceStream* old_stream, SourceStream* patch_stream, SinkStream* new_stream); -// As above, but simply takes the file paths. -BSDiffStatus ApplyBinaryPatch(const base::FilePath& old_stream, - const base::FilePath& patch_stream, - const base::FilePath& new_stream); // The following declarations are common to the patch-creation and // patch-application code. diff --git a/courgette/third_party/bsdiff_apply.cc b/courgette/third_party/bsdiff_apply.cc index 3ed346e..762c12c 100644 --- a/courgette/third_party/bsdiff_apply.cc +++ b/courgette/third_party/bsdiff_apply.cc @@ -26,8 +26,6 @@ * Changelog: * 2009-03-31 - Change to use Streams. Move CRC code to crc.{h,cc} * --Stephen Adams <sra@chromium.org> - * 2013-04-10 - Add wrapper method to apply a patch to files directly. - * --Joshua Pawlicki <waffles@chromium.org> */ // Copyright (c) 2009 The Chromium Authors. All rights reserved. @@ -36,7 +34,6 @@ #include "courgette/third_party/bsdiff.h" -#include "base/files/memory_mapped_file.h" #include "courgette/crc.h" #include "courgette/streams.h" @@ -171,42 +168,4 @@ BSDiffStatus ApplyBinaryPatch(SourceStream* old_stream, return OK; } -BSDiffStatus ApplyBinaryPatch(const base::FilePath& old_file_path, - const base::FilePath& patch_file_path, - const base::FilePath& new_file_path) { - // Set up the old stream. - base::MemoryMappedFile old_file; - if (!old_file.Initialize(old_file_path)) { - return READ_ERROR; - } - SourceStream old_file_stream; - old_file_stream.Init(old_file.data(), old_file.length()); - - // Set up the patch stream. - base::MemoryMappedFile patch_file; - if (!patch_file.Initialize(patch_file_path)) { - return READ_ERROR; - } - SourceStream patch_file_stream; - patch_file_stream.Init(patch_file.data(), patch_file.length()); - - // Set up the new stream and apply the patch. - SinkStream new_sink_stream; - BSDiffStatus status = ApplyBinaryPatch(&old_file_stream, - &patch_file_stream, - &new_sink_stream); - if (status != OK) { - return status; - } - - // Write the stream to disk. - int written = file_util::WriteFile( - new_file_path, - reinterpret_cast<const char*>(new_sink_stream.Buffer()), - static_cast<int>(new_sink_stream.Length())); - if (written != static_cast<int>(new_sink_stream.Length())) - return WRITE_ERROR; - return OK; -} - } // namespace |