Commit Graph

4838 Commits

Author SHA1 Message Date
Tao Bao fdec103335 applypatch: Fix a memory leak in ApplyImagePatch().
$ valgrind --leak-check=full out/host/linux-x86/nativetest64/recovery_host_test/recovery_host_test

==36755== 112 bytes in 1 blocks are definitely lost in loss record 4 of 16
==36755==    at 0x40307C4: malloc (valgrind/coregrind/m_replacemalloc/vg_replace_malloc.c:270)
==36755==    by 0x40C1669: operator new(unsigned long) (external/libcxxabi/src/cxa_new_delete.cpp:46)
==36755==    by 0x18D6A8: ApplyImagePatch(unsigned char const*, unsigned long, Value const*, std::__1::function<unsigned long (unsigned char const*, unsigned long)>, sha_state_st*, Value const*) (bootable/recovery/applypatch/imgpatch.cpp:62)
==36755==    by 0x18D02B: ApplyImagePatch(unsigned char const*, unsigned long, unsigned char const*, unsigned long, std::__1::function<unsigned long (unsigned char const*, unsigned long)>) (bootable/recovery/applypatch/imgpatch.cpp:134)
==36755==    by 0x160D15: GenerateTarget(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (bootable/recovery/tests/component/imgdiff_test.cpp:85)
==36755==    by 0x11FA7D: verify_patched_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) (bootable/recovery/tests/component/imgdiff_test.cpp:96)
==36755==    by 0x12966C: ImgdiffTest_zip_mode_smoke_trailer_zeros_Test::TestBody() (bootable/recovery/tests/component/imgdiff_test.cpp:295)
==36755==    by 0x235EF9: testing::Test::Run() (external/googletest/googletest/src/gtest.cc:2455)
==36755==    by 0x236CBF: testing::TestInfo::Run() (external/googletest/googletest/src/gtest.cc:2653)
==36755==    by 0x2372D6: testing::TestCase::Run() (external/googletest/googletest/src/gtest.cc:2771)
==36755==    by 0x23EEE6: testing::internal::UnitTestImpl::RunAllTests() (external/googletest/googletest/src/gtest.cc:4648)
==36755==    by 0x23EB45: testing::UnitTest::Run() (external/googletest/googletest/src/gtest.cc:2455)

std::unique_ptr<z_stream, decltype(&deflateEnd)> strm(new z_stream(), deflateEnd);

Only the internally allocated buffers inside 'strm' would be free'd by
deflateEnd(), but not 'strm' itself.

This CL fixes the issue by moving 'strm' to stack variable. Note that we
only need to call deflateEnd() on successful return of deflateInit2().

Test: recovery_host_test && recovery_component_test
Change-Id: I39b9bdf62376b8029f95cab82c8542bfcb874009
2017-10-24 12:48:36 -07:00
Treehugger Robot d830858952 Merge "libdrm_platform is now libdrm" 2017-10-23 21:25:17 +00:00
Dan Willemsen ec9ac55949 Merge "Build libminui with BOARD_VNDK_VERSION" 2017-10-21 00:08:23 +00:00
Tianjie Xu 9831ef389b Merge "Finish the new data receiver when update fails" 2017-10-20 21:01:48 +00:00
Tianjie Xu 5450c84ba4 Finish the new data receiver when update fails
The thread to receive new data may still be alive after we exit
PerformBlockImageUpdate() upon failures. This caused memory corruption
when we run the unittest repeatedly. Set the receiver_available flag
to false and make sure the receiver exits when the update fails.

Bug: 65430057
Test: unittests passed with tsan
Change-Id: Icb232d13fb96c78262249ffbd29cdbe5b77f1fce
2017-10-20 11:14:56 -07:00
Dan Willemsen 2ee9266827 libdrm_platform is now libdrm
Since it's converted to Soong and is using vendor_available.

Test: mmma bootable/recovery
Change-Id: I57b40c26abc2f6031241de893b3184ed1283e1fe
2017-10-19 22:30:57 -07:00
Jiyong Park 647e396445 Build libminui with BOARD_VNDK_VERSION
Use libdrm_platform which is a platform variant of libdrm.

Bug: 63741047
Bug: 37342627
Test: BOARD_VNDK_VERSION=current m -j libminui
Test: ryu recovery graphics test shows various graphics
Change-Id: Ifd2c1432781a96538585cdf818aa728d628a2f5a
Merged-In: Ifd2c1432781a96538585cdf818aa728d628a2f5a
2017-10-19 16:45:23 -07:00
Tao Bao 30ec005104 Merge "rotate_logs: Clean up the header includes." 2017-10-18 20:21:36 +00:00
Tao Bao 245c522588 rotate_logs: Clean up the header includes.
Also clang-format rotate_logs.cpp to get consistent style.

Test: mmma bootable/recovery
Test: recovery_manual_test works on marlin.
Change-Id: I1210a346b97bbf0e1a8c3f8e3e73a7c114858ca8
2017-10-18 11:08:37 -07:00
Tao Bao bab1e8efc8 Merge "otautil: Move RangeSet implementation into rangeset.cpp." 2017-10-17 16:01:50 +00:00
Tao Bao 4568582002 otautil: Move RangeSet implementation into rangeset.cpp.
Since it has grown much larger, users of the header shouldn't compile
and carry their full copies.

Also add missing header includes in imgdiff.cpp and imgdiff_test.cpp.

Test: mmma bootable/recovery
Test: recovery_unit_test; recovery_component_test; recovery_host_test
Change-Id: I88ca54171765e5606ab0d61580fbc1ada578fd7d
2017-10-16 11:28:18 -07:00
Chih-hung Hsieh b4a8c6abd9 Merge "Fix owner email address." 2017-10-12 18:10:12 +00:00
Chih-Hung Hsieh 4945407f5b Fix owner email address.
Test: normal build.
Bug: 67718313
Change-Id: Ia3144c634647f7a457810370a9f7275c19a8aa76
2017-10-12 10:45:04 -07:00
Tao Bao b058c5c481 Merge "applypatch: Move to Soong." 2017-10-12 16:12:48 +00:00
Tao Bao 2ebc7dabff Merge "applypatch: Remove the Makefile for building imgdiff in Chrome OS." 2017-10-12 03:22:41 +00:00
Tao Bao a0e9742796 Merge "Drop -Wno-unused-parameter." 2017-10-12 03:22:17 +00:00
Treehugger Robot 3c4e270123 Merge "Add missing includes." 2017-10-12 00:11:56 +00:00
Tao Bao 99f0d9e52b Drop -Wno-unused-parameter.
The only one left is libedify. Will handle that in a separate CL.

Test: mmma bootable/recovery
Change-Id: I732a5f85229da90fd767bee2e46c5c95f529c396
2017-10-11 16:56:12 -07:00
Tao Bao 582b67850f applypatch: Move to Soong.
Test: mmma bootable/recovery
Change-Id: Ie163aff1c4c2b3b15bb705825779ada6bc38ad67
2017-10-11 16:26:06 -07:00
Tao Bao 526699fc67 applypatch: Remove the Makefile for building imgdiff in Chrome OS.
The former user system/update_engine has dropped the support for
imgdiff (https://android-review.googlesource.com/c/platform/system/update_engine/+/400427/).

Test: N/A
Change-Id: Ia8f770dc51800b45064c4affc3514cf513877edc
2017-10-11 15:59:28 -07:00
Tao Bao 489155c44b Merge "otafault: Add the missing #include <string>." 2017-10-11 21:15:24 +00:00
Tao Bao 1bf842471c Merge "otautil: #include <errno.h> for TEMP_FAILURE_RETRY." 2017-10-11 21:04:39 +00:00
Tao Bao 6d7e4acf7e Merge "applypatch: Use shared lib for libbz." 2017-10-11 20:51:06 +00:00
Tao Bao f0ca4f8f2d otafault: Add the missing #include <string>.
Test: mmma bootable/recovery
Change-Id: If7610ba55a2d2dd4257ff38c44d252c9c6bbfe40
2017-10-11 12:21:17 -07:00
Tao Bao b9bffdffb9 otautil: #include <errno.h> for TEMP_FAILURE_RETRY.
Test: mmma bootable/recovery
Change-Id: I5959303528c6f704f10ce153f6fcb2054ce35b1e
2017-10-11 12:15:49 -07:00
Dan Albert c8686b493c Add missing includes.
Test: mma
Bug: None
Change-Id: I8b588dfbc00ef67557622d44700b331c7a31bde3
2017-10-11 11:47:54 -07:00
Tao Bao 44fc7b1e79 applypatch: Use shared lib for libbz.
We have shared lib target for libbz now (and libbz.so is already on
device because of /system/bin/bzip2).

Test: m applypatch
Change-Id: I5fe2468a8d535840245f081a92d436240dddbf6b
2017-10-11 11:35:08 -07:00
Tao Bao 46d8a3b604 Merge "applypatch: Use shared libs for libbase/libcrypto/liblog/libziparchive." 2017-10-11 18:31:36 +00:00
Tao Bao ff9b6f63a2 Merge "Move rangeset.h and print_sha1.h into otautil." 2017-10-11 17:09:25 +00:00
Tao Bao 09e468f84c Move rangeset.h and print_sha1.h into otautil.
Also drop the "bootable/recovery" path in LOCAL_C_INCLUDES from
applypatch modules.

Test: lunch aosp_{angler,bullhead,fugu,dragon,sailfish}-userdebug;
      mmma bootable/recovery
Change-Id: Idd602a796894f971ee4f8fa3eafe36c42d9de986
2017-10-10 15:52:11 -07:00
Tao Bao 3db3205b2a applypatch: Use shared libs for libbase/libcrypto/liblog/libziparchive.
This reduces the size of /system/bin/applypatch by ~69KB
(aosp_bullhead-userdebug).

Also remove the unneeded libcutils dependency.

Test: mmma bootable/recovery
Test: Check that /system/bin/install-recovery.sh successfully installs
      the recovery image.
Change-Id: I5063be9a9b7b8029d45ab5c2a7c45ef2cda81d26
2017-10-10 15:34:49 -07:00
Tao Bao eb8a064066 Merge "otautil: Fix mac build." 2017-10-10 18:34:53 +00:00
Tao Bao c13d2ec772 otautil: Fix mac build.
bootable/recovery/otautil/SysUtil.cpp:103:19: error: use of undeclared identifier 'mmap64'; did you mean 'mmap'?
  void* reserve = mmap64(nullptr, blocks * blksize, PROT_NONE, MAP_PRIVATE | MAP_ANON, -1, 0);
                  ^~~~~~

Test: mmma bootable/recovery
Change-Id: I22d7dc4d994069201e5a633cec21421e2c4182fa
2017-10-10 10:56:09 -07:00
Tao Bao abade5af15 Merge changes from topic "libedify-header"
* changes:
  edify: Export the header and move to Soong.
  Revert "Revert "Move error_code.h into otautil.""
2017-10-10 16:15:30 +00:00
Tao Bao e6f7f95d34 edify: Export the header and move to Soong.
Also make matching changes to applypatch modules which include
edify/expr.h.

Test: mmma bootable/recovery
Change-Id: Ia72be3caa010d7f56a70add2da345e631b306378
2017-10-09 14:08:00 -07:00
Tao Bao 1fc5bf353a Revert "Revert "Move error_code.h into otautil.""
This reverts commit 26436d6d60 to re-land
"Move error_code.h into otautil.".

This way it stops requiring relative path ".." in LOCAL_C_INCLUDES
(uncrypt and edify). Soong doesn't accept non-local ".." in
"local_include_dirs".

This CL needs to land with device-specific module changes (e.g. adding
the dependency on libotautil).

Test: lunch aosp_{angler,bullhead,dragon,fugu,sailfish}-userdebug;
      mmma bootable/recovery
Change-Id: If193241801af2dae73eccd31ce57cd2b81c9fd96
2017-10-09 14:07:54 -07:00
Tao Bao 7a3fc2de8e Merge "applypatch: Forward declare struct Value." 2017-10-09 20:57:58 +00:00
Tao Bao 38d78d19b9 applypatch: Forward declare struct Value.
And move '#include "edify/expr.h"' into .cpp files. This breaks the
transitive dependency on libedify. Modules that include
"applypatch/applypatch.h" don't need to add libedify into their
dependency list, unless they really need anything from libedify.

Build libedify static library for host, which is needed by
libimgpatch.

Test: mmma bootable/recovery
Change-Id: Ibb53d322579fcbf593438d058d9bcee240625941
2017-10-09 11:50:09 -07:00
Tao Bao d999ced1d1 Merge "Don't include "error_code.h" in edify/expr.h." 2017-10-06 14:37:21 +00:00
Tao Bao 9a874a4e5f Merge "vr_ui: drawing changes" 2017-10-06 14:28:22 +00:00
Tao Bao 0bf20d5133 Don't include "error_code.h" in edify/expr.h.
Use forward declartion to avoid pull in the module that contains
error_code.h (trying to move it into libotautil). Otherwise all the
modules that include "edify/expr.h" need to depend on the module that
exports error_code.h.

.cpp sources should include "error_code.h" explicitly to use the enums.

Test: lunch aosp_{angler,bullhead,dragon,fugu,sailfish}-userdebug;
      mmma bootable/recovery
Change-Id: Ic82db2746c7deb866e8cdfb3c57e0b1ecc71c4dc
2017-10-05 12:46:18 -07:00
Luke Song 92eda4db6c vr_ui: drawing changes
Change drawing of horizontal bars.
Implement image and background drawing.

Bug: 65556996
Test: Viewed graphics test
Change-Id: I68ddd997123607dbebf972af5a455ce8ef0c7075
2017-10-05 12:02:13 -07:00
Tao Bao 9baa19012a Merge "graphics: add rotation logic" 2017-10-05 19:00:50 +00:00
Tao Bao b23d29642d Merge "Revert "Move error_code.h into otautil."" 2017-10-05 17:18:04 +00:00
Tao Bao 26436d6d60 Revert "Move error_code.h into otautil."
This reverts commit 623fe7e701.

Reason for revert: Need to address device-specific modules.

Change-Id: Ib7a4191e7f193dfff49b02d3de76dda856800251
2017-10-05 17:16:31 +00:00
Tao Bao 916e155bab Merge "Move error_code.h into otautil." 2017-10-05 16:04:02 +00:00
Tao Bao 623fe7e701 Move error_code.h into otautil.
This way it stops requiring relative path ".." in LOCAL_C_INCLUDES
(uncrypt and edify). Soong doesn't accept non-local ".." in
"local_include_dirs".

Test: mmma bootable/recovery
Change-Id: Ia4649789cef2aaeb2785483660e9ea5a8b389c62
2017-10-04 08:55:24 -07:00
Tao Bao 281d4eefb1 Merge "edify: Remove edify_parser." 2017-10-04 15:48:18 +00:00
Treehugger Robot 2cedab7af9 Merge "otautil: Export headers." 2017-10-03 23:34:36 +00:00
Treehugger Robot 16817312a6 Merge "screen_ui: stage marker positioning" 2017-10-03 23:07:35 +00:00