From fa0824e9038074ef7e7004203caea66d926f4cd2 Mon Sep 17 00:00:00 2001 From: Richard Cohen Date: Sat, 17 Jun 2023 14:03:04 +0100 Subject: [PATCH] Valgrind: fix "Invalid read" - test-vendor ==4031== Invalid read of size 8 ==4031== at 0x4E58C09: gncVendorGetAddr (gncVendor.c:677) ==4031== by 0x10A7E3: test_vendor (test-vendor.c:97) ... ==4031== Address 0x7e0c4e8 is 168 bytes inside a block of size 232 free'd ==4031== at 0x484620F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==4031== by 0x51526C3: g_type_free_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7600.1) ==4031== by 0x4E58616: gncVendorFree (gncVendor.c:511) ==4031== by 0x4E58EFF: vendor_free (gncVendor.c:782) ==4031== by 0x4E8611E: qof_commit_edit_part2 (qofinstance.cpp:1034) ==4031== by 0x4E58F59: gncVendorCommitEdit (gncVendor.c:788) ==4031== by 0x4E584EF: gncVendorDestroy (gncVendor.c:483) ==4031== by 0x10A729: test_vendor (test-vendor.c:80) ... ==4031== Block was alloc'd at ==4031== at 0x4848A13: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==4031== by 0x5033550: g_malloc0 (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7600.1) ==4031== by 0x5157CBC: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7600.1) ==4031== by 0x513F20F: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7600.1) ==4031== by 0x51407B7: g_object_new_with_properties (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7600.1) ==4031== by 0x5141560: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7600.1) ==4031== by 0x4E583CF: gncVendorCreate (gncVendor.c:459) ==4031== by 0x10A6A5: test_vendor (test-vendor.c:74) ... --- libgnucash/engine/test/test-vendor.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libgnucash/engine/test/test-vendor.c b/libgnucash/engine/test/test-vendor.c index 3f030e5c8e..8e3e19cfd7 100644 --- a/libgnucash/engine/test/test-vendor.c +++ b/libgnucash/engine/test/test-vendor.c @@ -94,11 +94,12 @@ test_vendor (void) //test_bool_fcn (book, "TaxIncluded", gncVendorSetTaxIncluded, gncVendorGetTaxIncluded); test_bool_fcn (book, "Active", gncVendorSetActive, gncVendorGetActive); - do_test (gncVendorGetAddr (vendor) != NULL, "Addr"); - guid_replace (&guid); vendor = gncVendorCreate (book); count++; + + do_test (gncVendorGetAddr (vendor) != NULL, "Addr"); + gncVendorSetGUID (vendor, &guid); do_test (guid_equal (&guid, qof_instance_get_guid(QOF_INSTANCE(vendor))), "guid compare"); }