「view this page in B3 βῆτα server」

Revisions №61730

branch: master 「№61730」
Commited by: Vikram K. Mulligan
GitHub commit link: 「2d1303c389d22f54」 「№5489」
Difference from previous tested commit:  code diff
Commit date: 2021-08-09 13:03:08
linux.clang linux.gcc linux.srlz mac.clang
debug
release
unit
PyRosetta4.notebook gcc-9.gcc.python37.PyRosetta4.unit linux.clang.cxx11thread.serialization.python37.PyRosetta4.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug alpine.gcc.build.debug clang-10.clang.cxx11thread.mpi.serialization.tensorflow.build.debug gcc-10.gcc.build.debug gcc-9.gcc.build.debug linux.clang.hdf5.build.debug mysql postgres linux.clang.python36.build.debug linux.zeromq.debug mpi mpi.serialization linux.icc.build.debug OpenCL mac.clang.python36.build.debug build.header build.levels build.ninja_debug graphics static mac.clang.static.build.release beautification code_quality.clang_analysis code_quality.clang_tidy code_quality.cppcheck code_quality.merge_size serialization code_quality.submodule_regression integration.addsan integration.mpi integration.release_debug integration.tensorflow integration.thread integration.tutorials integration maintenance.documentation performance profile linux.clang.python36.release.PyRosetta4.Debug linux.clang.python39.release.PyRosetta4.Debug linux.clang.python27.release.PyRosetta4.MinSizeRel linux.clang.python36.release.PyRosetta4.MinSizeRel linux.clang.python37.release.PyRosetta4.MinSizeRel linux.clang.python38.release.PyRosetta4.MinSizeRel linux.clang.python39.release.PyRosetta4.MinSizeRel ubuntu.clang.python36.release.PyRosetta4.MinSizeRel ubuntu.clang.python37.release.PyRosetta4.MinSizeRel ubuntu.clang.python38.release.PyRosetta4.MinSizeRel ubuntu.clang.python39.release.PyRosetta4.MinSizeRel linux.clang.python27.release.PyRosetta4.Release linux.clang.python36.release.PyRosetta4.Release linux.clang.python37.release.PyRosetta4.Release linux.clang.python38.release.PyRosetta4.Release linux.clang.python39.release.PyRosetta4.Release ubuntu.clang.python27.release.PyRosetta4.Release ubuntu.clang.python36.release.PyRosetta4.Release ubuntu.clang.python37.release.PyRosetta4.Release ubuntu.clang.python38.release.PyRosetta4.Release ubuntu.clang.python39.release.PyRosetta4.Release release.PyRosetta4.conda.Release release.source scientific.RosettaCM.debug scientific.ddg_ala_scan.debug scientific.ddg_ala_scan scientific.loop_modeling_ngk_12res scientific.mhc_epitope_energy.debug scientific.mp_domain_assembly scientific.mp_f19_ddG_of_mutation.debug scientific.mp_f19_ddG_of_mutation scientific.mp_f19_sequence_recovery linux.clang.score linux.gcc.score mac.clang.score linux.scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify unit.addsan linux.clang.unit.release linux.gcc.unit.release mac.clang.unit.release unit.ubsan gcc-10.gcc.unit gcc-9.gcc.unit util.apps windows.build.debug windows.build.release

Merge pull request #5489 from RosettaCommons/vmullig/safer_binary_decoding Revise utility::decode6bit() to avoid memory overruns The function `utility::decode6bit()` accepts a pointer to a memory location and a string, decodes the string (converting every 4 characters into 3 bytes of arbitrary binary data), and populates a contiguous block of memory starting from the address stored in the pointer. There is no check that the memory that is overwritten is able to receive the data in question, and it's quite possible to run over the boundaries of a vector (especially if the vector length doesn't line up nicely with the 4 bytes of string per 3 bytes of data storage scheme). This PR alters the function signature so that it accepts a third input, the container size (in bytes), and refrains from writing beyond the container. While I don't think this fixes any existing bug (though it might -- it's hard to be 100% certain that there weren't cases in which container overruns were occurring), this does help to prevent mistakes in new code that calls this function. (I ran across this in the `vmullig/qpacker_benchmark` branch, pull request #4011, where I _was_ writing beyond the bounds of my vector and corrupting memory.) DONE: - [x] Teun's suggestions: - [x] Update `/// @brief` for `encode6bit()`. - [x] Add unit test.

...
Test: ubuntu.gcc.integration.addsan

Failed sub-tests (click for more details):
dgdp
Test: linux.clang.integration.release_debug_no_symbols

Failed sub-tests (click for more details):
dgdp
Test: linux.clang.integration.tutorials

Failed sub-tests (click for more details):
Protein-Protein-Docking
Test: mac.clang.python39.integration

Failed sub-tests (click for more details):
dgdp