[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-9.2 5/9] tests/qtest/migration-test: Free QCRyptoTLSTestC
From: |
Fabiano Rosas |
Subject: |
Re: [PATCH for-9.2 5/9] tests/qtest/migration-test: Free QCRyptoTLSTestCertReq objects |
Date: |
Thu, 22 Aug 2024 09:43:53 -0300 |
Peter Maydell <peter.maydell@linaro.org> writes:
> In the migration test we create several TLS certificates with
> the TLS_* macros from crypto-tls-x509-helpers.h. These macros
> create both a QCryptoTLSCertReq object which must be deinitialized
> and also an on-disk certificate file. The migration test currently
> removes the on-disk file in test_migrate_tls_x509_finish() but
> never deinitializes the QCryptoTLSCertReq, which means that memory
> allocated as part of it is leaked:
>
> Indirect leak of 2 byte(s) in 1 object(s) allocated from:
> #0 0x5558ba33712e in malloc
> (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/asan/tests/qtest/migration-test+0x22f12e)
> (BuildId: 4c8618f663e538538cad19d35233124cea161491)
> #1 0x7f64afc131f4 (/lib/x86_64-linux-gnu/libtasn1.so.6+0x81f4) (BuildId:
> 2fde6ecb43c586fe4077118f771077aa1298e7ea)
> #2 0x7f64afc18d58 in asn1_write_value
> (/lib/x86_64-linux-gnu/libtasn1.so.6+0xdd58) (BuildId:
> 2fde6ecb43c586fe4077118f771077aa1298e7ea)
> #3 0x7f64af8fc678 in gnutls_x509_crt_set_version
> (/lib/x86_64-linux-gnu/libgnutls.so.30+0xe7678) (BuildId:
> 97b8f99f392f1fd37b969a7164bcea884e23649b)
> #4 0x5558ba470035 in test_tls_generate_cert
> tests/unit/crypto-tls-x509-helpers.c:234:5
> #5 0x5558ba464e4a in test_migrate_tls_x509_start_common
> tests/qtest/migration-test.c:1058:5
> #6 0x5558ba462c8a in test_migrate_tls_x509_start_default_host
> tests/qtest/migration-test.c:1123:12
> #7 0x5558ba45ab40 in test_precopy_common
> tests/qtest/migration-test.c:1786:21
> #8 0x5558ba450015 in test_precopy_unix_tls_x509_default_host
> tests/qtest/migration-test.c:2077:5
> #9 0x5558ba46d3c7 in migration_test_wrapper
> tests/qtest/migration-helpers.c:456:5
>
> (and similar reports).
>
> The only function currently provided to deinit a QCryptoTLSCertReq is
> test_tls_discard_cert(), which also removes the on-disk certificate
> file. For the migration tests we need to retain the on-disk files
> until we've finished running the test, so the simplest fix is to
> provide a new function test_tls_deinit_cert() which does only the
> cleanup of the QCryptoTLSCertReq, and call it in the right places.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
- Re: [PATCH for-9.2 9/9] tests/qtest/migration-test: Don't leak QTestState in test_multifd_tcp_cancel(), (continued)
- [PATCH for-9.2 3/9] tests/qtest/migration-test: Fix leaks in calc_dirtyrate_ready(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 2/9] tests/qtest/migration-test: Don't leak resp in multifd_mapped_ram_fdset_end(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 6/9] tests/unit/crypto-tls-x509-helpers: deinit privkey in test_tls_cleanup, Peter Maydell, 2024/08/20
- [PATCH for-9.2 7/9] tests/qtest/migration-helpers: Don't dup argument to qdict_put_str(), Peter Maydell, 2024/08/20
- [PATCH for-9.2 5/9] tests/qtest/migration-test: Free QCRyptoTLSTestCertReq objects, Peter Maydell, 2024/08/20
- Re: [PATCH for-9.2 5/9] tests/qtest/migration-test: Free QCRyptoTLSTestCertReq objects,
Fabiano Rosas <=