oe-linux-nfc.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
To: linux-nfc@lists.01.org
Subject: [neard][PATCH v2 54/73] unit: fix memory leaks in test-ndef-parse
Date: Mon, 19 Jul 2021 13:08:00 +0200	[thread overview]
Message-ID: <20210719110819.27340-55-krzysztof.kozlowski@canonical.com> (raw)
In-Reply-To: <20210719110819.27340-1-krzysztof.kozlowski@canonical.com>

[-- Attachment #1: Type: text/plain, Size: 3930 bytes --]

test-ndef-parse.c was not freeing fully the ndef records it got.
Replace the open-coded freeing with usage of near_ndef_records_free() to
solve libasan errors like:

    Direct leak of 8 byte(s) in 1 object(s) allocated from:
        #0 0x7f678a64b518 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
        #1 0x557597045e89 in parse_sp_payload src/ndef.c:1468
        #2 0x557597045e89 in near_ndef_parse_msg src/ndef.c:2921

and valgring errors like:

    2 bytes in 1 blocks are definitely lost in loss record 2 of 52
    at 0x483C7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x48CA698: g_malloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
    by 0x48E4B3D: g_strndup (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
    by 0x11C9F6: parse_record_header (ndef.c:1131)
    by 0x11C9F6: parse_record_header (ndef.c:1038)
    by 0x11E3D9: near_ndef_parse_msg (ndef.c:2855)
    by 0x121E6B: test_ndef_uri (test-ndef-parse.c:213)
    by 0x48ECDCD: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
    by 0x48ECBCA: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
    by 0x48ED2B9: g_test_run_suite (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
    by 0x48ED2D4: g_test_run (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
    by 0x10F61A: main (test-ndef-parse.c:467)

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 unit/test-ndef-parse.c | 39 +++++----------------------------------
 1 file changed, 5 insertions(+), 34 deletions(-)

diff --git a/unit/test-ndef-parse.c b/unit/test-ndef-parse.c
index 24f7d2f2c3ac..ace0f9038ad9 100644
--- a/unit/test-ndef-parse.c
+++ b/unit/test-ndef-parse.c
@@ -189,15 +189,6 @@ static uint8_t ho_hs_bt[] = {0x91, 0x02, 0x0A, 0x48, 0x73, 0x12, 0xD1, 0x02,
 			      0x09, 0x44, 0x65, 0x79, 0x69, 0x63, 0x65, 0x4e,
 			      0x61, 0x6d, 0x65};
 
-static void test_ndef_free_record(struct near_ndef_record *record)
-{
-	g_free(record->header);
-	g_free(record->type);
-	g_free(record->data);
-	g_free(record);
-
-}
-
 static void test_ndef_uri(void)
 {
 	GList *records;
@@ -222,9 +213,7 @@ static void test_ndef_uri(void)
 	if (g_test_verbose())
 		g_print("NDEF URI field: %s\n", record->uri->field);
 
-	g_free(record->uri->field);
-	g_free(record->uri);
-	test_ndef_free_record(record);
+	near_ndef_records_free(records);
 }
 
 static void test_ndef_text(void)
@@ -255,11 +244,7 @@ static void test_ndef_text(void)
 						record->text->language_code);
 	}
 
-	g_free(record->text->data);
-	g_free(record->text->encoding);
-	g_free(record->text->language_code);
-	g_free(record->text);
-	test_ndef_free_record(record);
+	near_ndef_records_free(records);
 }
 
 static void test_ndef_text_invalid_utf16(void)
@@ -305,10 +290,7 @@ static void test_ndef_single_sp(void)
 		g_print("NDEF SP URI field: %.*s\n", (int)uri->field_length,
 			(char *) uri->field);
 
-	g_free(uri->field);
-	g_free(uri);
-	g_free(record->sp);
-	test_ndef_free_record(record);
+	near_ndef_records_free(records);
 }
 
 static void test_ndef_title_sp(void)
@@ -359,16 +341,7 @@ static void test_ndef_title_sp(void)
 		g_print("NDEF SP Title Language: %s\n", text->language_code);
 	}
 
-	g_free(uri->field);
-	g_free(uri);
-
-	g_free(text->data);
-	g_free(text->encoding);
-	g_free(text->language_code);
-	g_free(text);
-
-	g_free(record->sp);
-	test_ndef_free_record(record);
+	near_ndef_records_free(records);
 }
 
 static void test_ndef_aar(void)
@@ -395,9 +368,7 @@ static void test_ndef_aar(void)
 	if (g_test_verbose())
 		g_print("NDEF AAR package: %s\n", record->aar->package);
 
-	g_free(record->aar->package);
-	g_free(record->aar);
-	test_ndef_free_record(record);
+	near_ndef_records_free(records);
 }
 
 static void test_ndef_ho_hs_bt(void)
-- 
2.27.0

  parent reply	other threads:[~2021-07-19 11:08 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-19 11:07 [neard][PATCH v2 00/73] combined fixes - warnings, memory leaks, memory corruption Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 01/73] Drop empty NEWS Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 02/73] nfctool: fix adapter_get_devices() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 03/73] nfctool: fix adapter_print_target() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 04/73] nfctool: fix adapter_print_info() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 05/73] nfctool: fix adapter_compare_idx() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 06/73] nfctool: fix nfctool_send_dep_link_up() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 07/73] nfctool: fix nfctool_print_and_remove_snl() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 08/73] nfctool: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 09/73] nfctool: pass the format as string literal Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 10/73] dbus: fix -Wformat in near_dbus_encode_string() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 11/73] unit: pass real UTF-8 for testing text NDEF Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 12/73] ndef: check UTF-16 text payload length Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 13/73] ndef: silence clang -Wcast-align warning Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 14/73] ndef: use NDEF_TEXT_RECORD_UTF16_STATUS define Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 15/73] ndef: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 16/73] ndef: make freeing near_ndef_message reusable Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 17/73] se: fix multiple apdu definitions Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 18/73] se: silence clang -Wcast-align warning Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 19/73] se: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 20/73] adapter: adjust indentation of continued arguments Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 21/73] adapter: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 22/73] gdbus: do not shadow global 'pending' variable (-Wshadow) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 23/73] nciattach: fix poll.h include location Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 24/73] nciattach: do not shadow other local 'opt' variable (-Wshadow) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 25/73] bluetooth: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 26/73] nfctype2: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 27/73] nfctype3: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 28/73] nfctype5: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 29/73] nfctype5: fix returning uninitialized stack value in t5_tag_is_ti_pro() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 30/73] mifare: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 31/73] mifare: use unsigned int to suppress compiler -Wstrict-overflow Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 32/73] p2p: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 33/73] npp: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 34/73] device: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 35/73] manager: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 36/73] netlink: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 37/73] gdbus: annotate printf-like functions as accepting format Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 38/73] snep-send: fix near_ndef_message memory leak Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 39/73] tag: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 40/73] tag: do not open-code freeing ndef message Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 41/73] snep: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 42/73] snep: remove useless NULL-ify of local pointer variable Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 43/73] snep: fix double free of GSList Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 44/73] snep: fix fragmented response memory leaks Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 45/73] unit: use g_assert_cmpstr() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 46/73] unit: use g_assert_cmpint() and g_assert_cmpuint() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 47/73] unit: fix recv() and send() return types Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 48/73] unit: use g_assert_null() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 49/73] unit: use g_assert_cmpmem() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 50/73] unit: use proper pointer to uint8_t in test_snep_read_recv_fragments() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 51/73] unit: do not shadow global 'text' variable (-Wshadow) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 52/73] unit: do not shadow global 'uri' " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 53/73] unit: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:08 ` Krzysztof Kozlowski [this message]
2021-07-19 11:08 ` [neard][PATCH v2 55/73] unit: do not open-code freeing ndef message Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 56/73] unit: fix memory leaks in test-ndef-build Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 57/73] unit: fix memory leaks in test-snep-read error paths Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 58/73] unit: fix record memory leak in test-snep-read Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 59/73] unit: fix records GList " Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 60/73] unit: do not pass NULL to memcpy() Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 61/73] unit: do not search for headers locally where they do not exist Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 62/73] unit: remove duplicated invalid definitions in test-snep-read Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 63/73] unit: remove duplicated definitions in test-ndef-parse Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 64/73] unit: add few asserts in test-snep-read Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 65/73] HACKING: refine required packages Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 66/73] build: fix setting CFLAGS on dash shell (Alpine Linux) Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 67/73] build: add more compiler warnings Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 68/73] build: enable -Wshadow and -Wformat-signedness " Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 69/73] build: enable -Wformat=2 warnings Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 70/73] build: enable -Wunsafe-loop-optimizations and -Wstrict-overflow=2 warnings Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 71/73] build: fix missing usage of PIE check result Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 72/73] build: add support for GCC sanitizers (asan, lsan and ubsan) Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 73/73] AUTHORS: Mention Krzysztof Kozlowski's contributions Krzysztof Kozlowski
2021-07-19 11:21 ` [neard][PATCH v2 00/73] combined fixes - warnings, memory leaks, memory corruption Krzysztof Kozlowski
2021-07-19 16:32   ` Mark Greer
2021-08-01 23:11 ` Mark Greer
2021-08-02  7:51   ` Krzysztof Kozlowski
2021-08-04  7:56     ` Krzysztof Kozlowski
2021-08-05 16:14       ` Mark Greer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210719110819.27340-55-krzysztof.kozlowski@canonical.com \
    --to=krzysztof.kozlowski@canonical.com \
    --cc=linux-nfc@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).