Comment 1 for bug 1665242

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to liberasurecode (master)

Reviewed: https://review.openstack.org/434162
Committed: https://git.openstack.org/cgit/openstack/liberasurecode/commit/?id=c9136a62b6e7cc8701cd7206ef0367520a20b8b9
Submitter: Jenkins
Branch: master

commit c9136a62b6e7cc8701cd7206ef0367520a20b8b9
Author: Kota Tsuyuzaki <email address hidden>
Date: Wed Feb 15 01:08:25 2017 -0800

    Fix valgrind-check and memory leak

    Can you believe that we ware testing the memory leak with valgrind
    to just *bash scripts* instead of actual binaries on liberasurecode_test
    and libec_slap?

    That is why we cannot find such an easy memory leak[1] at the gate.
    Now this patch enable to run the valgrind against to the binaries.

    With this fix, we found various memory leak at liberasurecode_test as
    follows and this patch also fixes them:

    - If we create fake fragments, we're responsible for freeing all of the
      frags as well as the array holding the pointers to the frags.
    - If we allocate any space, we're responsible for freeing it.
    - If we create an EC descriptor, we're responsible for destroying it.
    - If we create a fragment or skip array, we're responsible for freeing it.
    - If that happens inside a loop, we're responsible for doing it *inside
      that same loop*.

    In addition to the test fix, this patch fixes following memory leaks at
    the code which is affected to other users (pyeclib, OpenStack Swift)

    * Refuse to decode fragments that aren't even long enough to include
      fragment headers.
    * Fix a small memory leak in the builtin rs_vand implementation.

    Closes-Bug: #1665242

    Co-Authored-By: Tim Burke <email address hidden>

    1: https://review.openstack.org/#/c/431812

    Change-Id: I96f124e4e536bbd7544208acc084de1cda5c19b2